Wireshark  4.3.0
The Wireshark network protocol analyzer
packet-gsm_rlcmac.h
1 /* packet-gsm_rlcmac.h
2  * Definitions for GSM RLC MAC control plane message dissection in wireshark.
3  * TS 44.060 and 24.008
4  * By Vincent Helfre, based on original code by Jari Sassi
5  * with the gracious authorization of STE
6  * Copyright (c) 2011 ST-Ericsson
7  *
8  * Wireshark - Network traffic analyzer
9  * By Gerald Combs <gerald@wireshark.org>
10  * Copyright 1998 Gerald Combs
11  *
12  * SPDX-License-Identifier: GPL-2.0-or-later
13  */
14 
15 #ifndef __PACKET_GSM_RLCMAC_H__
16 #define __PACKET_GSM_RLCMAC_H__
17 
18 #ifndef PRE_PACKED
19 #define PRE_PACKED
20 #endif
21 
22 #ifndef POST_PACKED
23 #define POST_PACKED
24 #endif
25 
26 #define GSM_RLC_MAC_MAGIC_NUMBER 0x67707273
27 
28 typedef guint8 TFI_t;
29 
30 typedef guint8 N32_t;
31 typedef guint8 N51_t;
32 typedef guint8 N26_t;
33 
34 /* Starting Time IE as specified in 04.08 */
35 typedef struct
36 {
37  N32_t N32; /* 04.08 refers to T1' := (FN div 1326) mod 32 */
38  N51_t N51; /* 04.08 refers to T3 := FN mod 51 */
39  N26_t N26; /* 04.08 refers to T2 := FN mod 26 */
41 
42 typedef struct
43 {
44  guint8 UnionType;/* UnionType is index */
45  union
46  {
47  guint8 UPLINK_TFI;
48  guint8 DOWNLINK_TFI;
49  } u;
50 } Global_TFI_t;
51 
52 typedef struct
53 {
54  guint8 UnionType;
55  union
56  {
57  StartingTime_t StartingTime;
58  guint16 k;
59  } u;
61 
62 typedef struct
63 {
64  guint8 FINAL_ACK_INDICATION;
65  guint8 STARTING_SEQUENCE_NUMBER;
66  guint8 RECEIVED_BLOCK_BITMAP[64/8];
68 
69 
70 typedef struct
71 {
72  guint8 Exist_TIMING_ADVANCE_VALUE;
73  guint8 TIMING_ADVANCE_VALUE;
74 
75  guint8 Exist_IndexAndtimeSlot;
76  guint8 TIMING_ADVANCE_INDEX;
77  guint8 TIMING_ADVANCE_TIMESLOT_NUMBER;
79 
80 typedef struct
81 {
82  guint8 ALPHA;
83 
84  struct
85  {
86  guint8 Exist;
87  guint8 GAMMA_TN;
88  } Slot[8];
90 
91 typedef struct
92 {
93  guint8 ALPHA;
94  guint8 T_AVG_W;
95  guint8 T_AVG_T;
96  guint8 Pb;
97  guint8 PC_MEAS_CHAN;
98  guint8 INT_MEAS_CHANNEL_LIST_AVAIL;
99  guint8 N_AVG_I;
101 
102 typedef struct
103 {
104  guint8 Exist_TIMING_ADVANCE_VALUE;
105  guint8 TIMING_ADVANCE_VALUE;
106 
107  guint8 Exist_UPLINK_TIMING_ADVANCE;
108  guint8 UPLINK_TIMING_ADVANCE_INDEX;
109  guint8 UPLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
110 
111  guint8 Exist_DOWNLINK_TIMING_ADVANCE;
112  guint8 DOWNLINK_TIMING_ADVANCE_INDEX;
113  guint8 DOWNLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
115 
116 
117 typedef struct
118 {
119  guint8 C_VALUE;
120  guint8 RXQUAL;
121  guint8 SIGN_VAR;
122 
123  struct
124  {
125  guint8 Exist;
126  guint8 I_LEVEL_TN;
127  } Slot[8];
129 
130 typedef enum
131 {
132  RLC_MODE_ACKNOWLEDGED = 0,
133  RLC_MODE_UNACKNOWLEDGED = 1
134 } RLC_MODE_t;
135 
136 typedef struct
137 {
138  guint8 PEAK_THROUGHPUT_CLASS;
139  guint8 RADIO_PRIORITY;
140  RLC_MODE_t RLC_MODE;
141  guint8 LLC_PDU_TYPE;
142  guint16 RLC_OCTET_COUNT;
144 
145 typedef struct
146 {
147  guint16 RANDOM_ACCESS_INFORMATION;
148  guint8 FRAME_NUMBER[2];
150 
151 typedef PRE_PACKED struct
152 {
153  guint8 nsapi;
154  guint8 value;
155 } Receive_N_PDU_Number_t POST_PACKED;
156 
157 typedef PRE_PACKED struct
158 {
159  guint8 IEI;
160  guint8 Length;
161 
162  guint8 Count_Receive_N_PDU_Number;
163  Receive_N_PDU_Number_t Receive_N_PDU_Number[11];
164 } Receive_N_PDU_Number_list_t POST_PACKED;
165 
167 #define IMSI_LEN 9
168 
170 #define TMSI_LEN 4
171 
172 typedef struct
173 {
174  guint8 MCC1;
175  guint8 MCC2;
176  guint8 MCC3;
177  guint8 MNC3;
178  guint8 MNC1;
179  guint8 MNC2;
180 } PLMN_t;
181 
182 
184 typedef PRE_PACKED struct
185 {
186  PLMN_t PLMN;
187  guint16 LAC;
188 } LAI_t POST_PACKED;
189 
190 
192 #define LAI_LEN (sizeof(LAI_t))
193 
194 typedef struct
195 {
196  guint8 TMSI[TMSI_LEN];
197 } TMSI_t;
198 
199 typedef guint16 CellId_t;
200 
201 
202 #define CKSN_NOT_VALID 7
203 
204 #define IMEI_LEN 9
205 
206 #define IMEISV_LEN 10
207 
208 #define MAX_ELEMENTS_IN_EQPLMN_LIST 16
209 
210 
211 typedef struct
212 {
213  guint8 NUMBER_CELLS;
214  guint8 CCN_SUPPORTED[16]; /* bit (1), max size: 16 x 8 => 128 bits */
216 
217 typedef struct
218 {
219  guint8 UnionType;
220  union
221  {
222  guint8 LSA_ID;
223  guint8 ShortLSA_ID;
224  } u;
226 
227 #define LSA_ID_INFO_ELEMENTS_MAX (16)
228 
229 typedef struct
230 {
231  guint8 Count_LSA_ID_Info_Element;
232  LSA_ID_Info_Element_t LSA_ID_Info_Elements[LSA_ID_INFO_ELEMENTS_MAX];
233 } LSA_ID_Info_t;
234 
235 #define NR_OF_FREQ_OR_CELLS_MAX (32)
236 
237 typedef struct
238 {
239  guint8 NR_OF_FREQ_OR_CELLS;
240  LSA_ID_Info_t LSA_ID_Info[NR_OF_FREQ_OR_CELLS_MAX];
242 
243 #define MAX_REPORT_PRIORITY_CELLS (16)
244 
245 typedef struct
246 {
247  guint8 NUMBER_CELLS;
248  guint8 REPORT_PRIORITY[MAX_REPORT_PRIORITY_CELLS];
250 
252 
253 typedef struct
254 {
255  guint8 REPORTING_OFFSET;
256  guint8 REPORTING_THRESHOLD;
258 
259 
260 typedef struct
261 {
262  guint8 Exist_MULTI_BAND_REPORTING;
263  guint8 MULTI_BAND_REPORTING;
264 
265  guint8 Exist_SERVING_BAND_REPORTING;
266  guint8 SERVING_BAND_REPORTING;
267 
268  /* Warning:
269  *
270  * SI2quater, MI, PMO, and PCCO always specify Scale Ord. There is no
271  * "exist SCALE_ORD" bit in the CSN.1 descriptions for these messages.
272  * However, this struct is shared with the PSI5 message which may or may
273  * not specify SCALE_ORD, thus necessitating the inclusion of member
274  * Exist_SCALE_ORD in the struct. This member is never set for SI2quater, MI,
275  * PMO, and PCCO so to check it (in these cases) would be erroneous.
276  */
277  guint8 Exist_SCALE_ORD;
278  guint8 SCALE_ORD;
279 
280  guint8 Exist_OffsetThreshold900;
281  OffsetThreshold_t OffsetThreshold900;
282 
283  guint8 Exist_OffsetThreshold1800;
284  OffsetThreshold_t OffsetThreshold1800;
285 
286  guint8 Exist_OffsetThreshold400;
287  OffsetThreshold_t OffsetThreshold400;
288 
289  guint8 Exist_OffsetThreshold1900;
290  OffsetThreshold_t OffsetThreshold1900;
291 
292  guint8 Exist_OffsetThreshold850;
293  OffsetThreshold_t OffsetThreshold850;
294 
296 
297 typedef struct
298 {
299  guint8 Exist_FDD_REPORTING_THRESHOLD_2;
300  guint8 FDD_REPORTING_THRESHOLD_2;
302 
303 
304 typedef struct
305 {
306  guint8 NETWORK_CONTROL_ORDER;
307 
308  guint8 Exist_NC;
309  guint8 NC_NON_DRX_PERIOD;
310  guint8 NC_REPORTING_PERIOD_I;
311  guint8 NC_REPORTING_PERIOD_T;
313 
314 
315 /*
316 **========================================================================
317 ** Global types
318 **========================================================================
319 */
320 
321 struct MobileId /* Mobile id, -> TMSI, IMEI or IMSI */
322 {
323  guint8 Length;
324  guint8 IdType;
325  guint8 OddEven;
326  guint8 Dig1;
327  union
328  {
329  unsigned char TMSI[TMSI_LEN];
330  unsigned char IMEI[IMEI_LEN - 2];
331  unsigned char IMSI[IMEI_LEN - 2];
332  unsigned char IMEISV[IMEISV_LEN - 2];
333  } Id;
334 };
335 
336 #if 0
337 struct OV_MobileId /* Struct for optional mobile identity */
338 {
339  unsigned char IEI;
340  struct MobileId MV;
341 };
342 
343 #define LAC_INVALID 0xFEFF
344 
345 typedef enum
346 {
347  LAI_PRIORITY_AVAILABLE,
348  LAI_PRIORITY_FORBIDDEN,
349  LAI_PRIORITY_FORCED
350 } LAI_Priority_t;
351 
352 typedef enum
353 {
354  NOM_I,
355  NOM_II,
356  NOM_III,
357  NOM_GSM,
358  NOM_PS_ONLY,
359  NOM_UNKNOWN
360 } NMO_t;
361 
362 typedef enum
363 {
364  COMBINED,
365  NOT_COMBINED,
366  SAME_AS_BEFORE
367 } ProcedureMode_t;
368 
369 typedef struct
370 {
371  guint8 Cause;
372  LAI_t LAI;
373  struct OV_MobileId MobileId;
374 } CombinedResult_t;
375 
376 typedef enum
377 {
378  R97,
379  R99
380 } MSCR_t, SGSNR_t;
381 
382 typedef struct
383 {
384  guint8 NbrOfElements;
385  PLMN_t Element[MAX_ELEMENTS_IN_EQPLMN_LIST];
386 } EqPLMN_List_t;
387 #endif
388 
389 #define MAX_PCCCH 16
390 #define MAX_RFL_LENGTH 16 /* length of RFL in PSI2 */
391 #define MAX_RFLS 4 /* Max number of RFLs */
392 #define MAX_MA_LISTS_IN_PSI2 8 /* MAX MA lists = 8 */
393 #define MAX_ALLOCATION_BITMAP_LENGTH 128 /* max length of Fixed Allocation bitmap in BITS (2^7) */
394 #define MAX_VAR_LENGTH_BITMAP_LENGTH 176 /* max length ever possible for variable length fixed allocation bitmap */
395 
396 
397 typedef struct
398 {
399  guint8 MA_LENGTH;/* =(MA_BitLength +7) MA_BitLength_ converted to bytes */
400  guint8 MA_BITMAP[(63+1)/8];/* : bit (val (MA_LENGTH) + 1) > */
401  /* The above should not change order! */
402  guint8 MA_BitLength;
404 
405 typedef struct
406 {
407  guint8 ElementsOf_ARFCN_INDEX;
408  guint8 ARFCN_INDEX[16];
410 
411 typedef struct
412 {
413  guint8 HSN;
414 
415  guint8 ElementsOf_RFL_NUMBER;
416  guint8 RFL_NUMBER[4];
417 
418  guint8 UnionType;
419  union
420  {
422  ARFCN_index_list_t ARFCN_index_list;
423  } u;
425 
426 /* < EGPRS Ack/Nack Description >
427  * CRBB - Compressed Received Blocks Bitmap
428  * URBB - Uncompressed Received Blocks Bitmap
429  */
430 #define EGPRS_ACK_NACK_MAX_BITS 0x0FF /* 255 bits/32 bytes */
431 #define CRBB_MAX_BITS 0x07F /* 127 bits/16 bytes */
432 #define URBB_MAX_BITS 0x150 /* 336 bits/42 bytes */
433 
434 typedef struct
435 {
436  guint8 FINAL_ACK_INDICATION;
437  guint8 BEGINNING_OF_WINDOW;
438  guint8 END_OF_WINDOW;
439  guint16 STARTING_SEQUENCE_NUMBER;
440 
441  gboolean Exist_CRBB;
442  guint8 CRBB_LENGTH;
443  guint8 CRBB_STARTING_COLOR_CODE;
444  guint8 CRBB[CRBB_MAX_BITS/8 + 1];
445 
446  guint16 URBB_LENGTH;
447  guint8 URBB[URBB_MAX_BITS/8];
449 
450 typedef struct
451 {
452  guint8 UnionType;
455 
456 typedef struct
457 {
458  guint8 LENGTH;
461 
462 
463 /* <P1 Rest Octets>
464  * <P2 Rest Octets>
465  */
466 #if 0
467 #define SF_VBS 0 /* VBS (broadcast call reference) */
468 #define SF_VGCS 1 /* VGCS (group call reference) */
469 
470 #define AF_AckIsNotRequired 0 /* acknowledgement is not required */
471 #define AF_AckIsRequired 1 /* acknowledgement is required */
472 #endif
473 
474 typedef struct
475 {
476  guint32 value;
477  guint8 SF;
478  guint8 AF;
479  guint8 call_priority;
480  guint8 Ciphering_information;
482 
483 /* Mobile allocation is coded differently but uses the same type! */
484 typedef struct
485 {
486  guint8 Length;
487  guint8 MA[8];
489 
490 typedef struct
491 {
492  guint8 UnionType;
493  union
494  {
496  guint8 Frequency_Short_List[64/8];
497  } u;
499 
500 typedef struct
501 {
502  guint8 spare;
503  guint16 ARFCN;
505 
506 typedef struct
507 {
508  guint8 MAIO;
509  guint8 HSN;
511 
512 typedef struct
513 {
514  guint8 Channel_type_and_TDMA_offset;
515  guint8 TN;
516  guint8 TSC;
517 
518  guint8 UnionType;
519  union
520  {
521  SingleRFChannel_t SingleRFChannel;
522  RFHoppingChannel_t RFHoppingChannel;
523  } u;
525 
526 typedef struct
527 {
528  Channel_Description_t Channel_Description;
529 
530  guint8 Exist_Hopping;
531  MobileAllocation_or_Frequency_Short_List_t MA_or_Frequency_Short_List;
532 
534 
535 typedef struct
536 {
537  Group_Call_Reference_t Group_Call_Reference;
538 
539  guint8 Exist_Group_Channel_Description;
540  Group_Channel_Description_t Group_Channel_Description;
542 
543 typedef struct
544 {
545  guint8 Exist_NLN_PCH_and_NLN_status;
546  guint8 NLN_PCH;
547  guint8 NLN_status;
548 
549  guint8 Exist_Priority1;
550  guint8 Priority1;
551 
552  guint8 Exist_Priority2;
553  guint8 Priority2;
554 
555  guint8 Exist_Group_Call_information;
556  Group_Call_information_t Group_Call_information;
557 
558  guint8 Packet_Page_Indication_1;
559  guint8 Packet_Page_Indication_2;
561 
562 typedef struct
563 {
564  guint8 Exist_CN3;
565  guint8 CN3;
566 
567  guint8 Exist_NLN_and_status;
568  guint8 NLN;
569  guint8 NLN_status;
570 
571  guint8 Exist_Priority1;
572  guint8 Priority1;
573 
574  guint8 Exist_Priority2;
575  guint8 Priority2;
576 
577  guint8 Exist_Priority3;
578  guint8 Priority3;
579 
580  guint8 Packet_Page_Indication_3;
582 
583 /* <IA Rest Octets> incl additions for R99 and EGPRS */
584 
585 typedef struct
586 {
587  guint8 USF;
588  guint8 USF_GRANULARITY;
589 
590  guint8 Exist_P0_PR_MODE;
591  guint8 P0;
592  guint8 PR_MODE;
594 
595 typedef struct
596 {
597  gboolean Exist_ALPHA;
598  guint8 ALPHA;
599 
600  guint8 GAMMA;
601  StartingTime_t TBF_STARTING_TIME;
602  guint8 NR_OF_RADIO_BLOCKS_ALLOCATED;
603 
604  gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
605  guint8 P0;
606  guint8 BTS_PWR_CTRL_MODE;
607  guint8 PR_MODE;
609 
610 typedef struct
611 {
612  guint8 TFI_ASSIGNMENT;
613  guint8 POLLING;
614 
615  guint8 UnionType;
616  union
617  {
618  DynamicAllocation_t DynamicAllocation;
619  guint8 FixedAllocationDummy; /* Fixed Allocation was removed */
620  } Allocation;
621 
622  guint8 EGPRS_CHANNEL_CODING_COMMAND;
623  guint8 TLLI_BLOCK_CHANNEL_CODING;
624 
625  gboolean Exist_BEP_PERIOD2;
626  guint8 BEP_PERIOD2;
627 
628  guint8 RESEGMENT;
629  guint8 EGPRS_WindowSize;
630 
631  gboolean Exist_ALPHA;
632  guint8 ALPHA;
633 
634  guint8 GAMMA;
635 
636  gboolean Exist_TIMING_ADVANCE_INDEX;
637  guint8 TIMING_ADVANCE_INDEX;
638 
639  gboolean Exist_TBF_STARTING_TIME;
640  StartingTime_t TBF_STARTING_TIME;
642 
643 #define MAX_ACCESS_TECHOLOGY_TYPES 12
644 
645 typedef struct
646 {
647  guint8 ExtendedRA;
648 
649  guint8 NrOfAccessTechnologies;
650  guint8 AccessTechnologyType[MAX_ACCESS_TECHOLOGY_TYPES];
651 
652  guint8 UnionType;
653  union
654  {
655  EGPRS_TwoPhaseAccess_t TwoPhaseAccess; /* 04.18/10.5.2.16 Multiblock allocation */
656  EGPRS_OnePhaseAccess_t OnePhaseAccess; /* 04.60/10.5.2.16 TFI using Dynamic or Fixed Allocation */
657  } Access;
658 } IA_EGPRS_00_t;
659 
660 typedef struct
661 {
662  guint8 UnionType;
663  union
664  {
665  IA_EGPRS_00_t IA_EGPRS_PUA; /* 00 < EGPRS Packet Uplink Assignment >*/
666  guint8 IA_EGPRS_01; /* 01 reserved for future use */
667  guint8 IA_EGPRS_1; /* 1 reserved for future use */
668  } u;
669 } IA_EGPRS_t;
670 
671 typedef struct
672 {
673  guint8 Length;
674  guint8 MAIO;
675  guint8 MobileAllocation[62];
677 
678 typedef struct
679 {
680  gboolean Exist_ALPHA;
681  guint8 ALPHA;
682 
683  guint8 GAMMA;
684  guint8 R97_CompatibilityBits;
685  StartingTime_t TBF_STARTING_TIME;
686 
687  gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
688  guint8 P0;
689  guint8 BTS_PWR_CTRL_MODE;
690  guint8 PR_MODE;
692 
693 typedef struct
694 {
695  guint8 TFI_ASSIGNMENT;
696  guint8 POLLING;
697 
698  guint8 UnionType;
699  union
700  {
701  DynamicAllocation_t DynamicAllocation;
702  guint8 FixedAllocationDummy;
703  } Allocation;
704 
705  guint8 CHANNEL_CODING_COMMAND;
706  guint8 TLLI_BLOCK_CHANNEL_CODING;
707 
708  guint8 Exist_ALPHA;
709  guint8 ALPHA;
710 
711  guint8 GAMMA;
712 
713  guint8 Exist_TIMING_ADVANCE_INDEX;
714  guint8 TIMING_ADVANCE_INDEX;
715 
716  guint8 Exist_TBF_STARTING_TIME;
717  StartingTime_t TBF_STARTING_TIME;
719 
720 typedef struct
721 {
722  gboolean Exist_ExtendedRA;
723  guint8 ExtendedRA;
725 
726 typedef struct
727 {
728  guint8 UnionType;
729  union
730  {
731  GPRS_SingleBlockAllocation_t SingleBlockAllocation;
732  GPRS_DynamicOrFixedAllocation_t DynamicOrFixedAllocation;
733  } Access;
734 
735  gboolean Exist_AdditionsR99;
736  PU_IA_AdditionsR99_t AdditionsR99;
738 
739 typedef struct
740 {
741  guint8 EGPRS_WindowSize;
742  guint8 LINK_QUALITY_MEASUREMENT_MODE;
743 
744  gboolean Exist_BEP_PERIOD2;
745  guint8 BEP_PERIOD2;
747 
748 typedef struct
749 {
750  guint32 TLLI;
751 
752  guint8 Exist_TFI_to_TA_VALID;
753  guint8 TFI_ASSIGNMENT;
754  guint8 RLC_MODE;
755  guint8 Exist_ALPHA;
756  guint8 ALPHA;
757  guint8 GAMMA;
758  guint8 POLLING;
759  guint8 TA_VALID;
760 
761  guint8 Exist_TIMING_ADVANCE_INDEX;
762  guint8 TIMING_ADVANCE_INDEX;
763 
764  guint8 Exist_TBF_STARTING_TIME;
765  StartingTime_t TBF_STARTING_TIME;
766 
767  guint8 Exist_P0_PR_MODE;
768  guint8 P0;
769  guint8 BTS_PWR_CTRL_MODE;
770  guint8 PR_MODE;
771 
772  gboolean Exist_AdditionsR99;
773  PD_IA_AdditionsR99_t AdditionsR99;
775 
776 typedef struct
777 {
778  gboolean Exist_SecondPart;
779 
780  gboolean Exist_ExtendedRA;
781  guint8 ExtendedRA;
783 
784 typedef struct
785 {
786  guint8 UnionType;
787  union
788  {
789  Packet_Uplink_ImmAssignment_t Packet_Uplink_ImmAssignment;
790  Packet_Downlink_ImmAssignment_t Packet_Downlink_ImmAssignment;
791  } ul_dl;
793 
794 typedef struct
795 {
796  guint8 UnionType;
797  union
798  {
799  IA_PacketAssignment_UL_DL_t UplinkDownlinkAssignment;
800  Second_Part_Packet_Assignment_t Second_Part_Packet_Assignment;
801  } u;
803 
804 #if 0
805 typedef struct
806 {
807  guint8 UnionType;
808  union
809  {
810  IA_FreqParamsBeforeTime_t IA_FrequencyParams;
811  IA_PacketAssignment_t IA_PacketAssignment;
812  } u;
813 } IA_GPRS_t;
814 
815 typedef struct
816 {
817  guint8 UnionType;
818  union
819  {
820  IA_EGPRS_t IA_EGPRS_Struct;
821  IA_GPRS_t IA_GPRS_Struct;
822  } u;
823 } IA_t;
824 
825 
826 /* <IAR Rest Octets> ref: 04.18/10.5.2.17 */
827 typedef struct
828 {
829  guint8 Exist_ExtendedRA;
830  guint8 ExtendedRA;
831 } ExtendedRA_Info_t;
832 
833 typedef ExtendedRA_Info_t ExtendedRA_Info_Array_t[4];
834 
835 typedef struct
836 {
837  ExtendedRA_Info_Array_t ExtendedRA_Info;
838 } IAR_t;
839 #endif
840 
841 /* Packet Polling Request */
842 typedef struct
843 {
844  guint8 UnionType;
845  union
846  {
847  Global_TFI_t Global_TFI;
848  guint32 TLLI;
849  guint16 TQI;
850  } u;
852 
853 typedef struct
854 {
855  guint8 MESSAGE_TYPE;
856  guint8 PAGE_MODE;
858  guint8 TYPE_OF_ACK;
860 
861 /* < SI 13 Rest Octets > */
862 #define MAX_EXTENSION_LENGTH_IN_BYTES (8) /* max value = 64 (coded on 6 bits) */
863 
864 typedef struct
865 {
866  guint8 extension_length;
867  guint8 Extension_Info[MAX_EXTENSION_LENGTH_IN_BYTES];/* ( val (extension length)+1 ) 04.60/12.26 */
869 
870 #if 0
871 typedef struct
872 {
873  guint8 DTM_SUPPORT : 1;
874  guint8 PFC_FEATURE_MODE : 1;
875  guint8 BEP_PERIOD : 4;
876  guint8 EGPRS_PACKET_CHANNEL_REQUEST : 1;
877  guint8 EGPRS_Support : 1;
878 
879  guint8 NotUsed : 3;
880  guint8 EXT_UTBF_NODATA : 1;
881  guint8 MULTIPLE_TBF_CAPABILITY : 1;
882  guint8 NW_EXT_UTBF : 1;
883  guint8 CCN_ACTIVE : 1;
884  guint8 BSS_PAGING_COORDINATION : 1;
885 } GPRS_ExtensionInfoWithEGPRS_t;
886 
887 typedef struct
888 {
889  guint8 EXT_UTBF_NODATA : 1;
890  guint8 MULTIPLE_TBF_CAPABILITY : 1;
891  guint8 NW_EXT_UTBF : 1;
892  guint8 CCN_ACTIVE : 1;
893  guint8 BSS_PAGING_COORDINATION : 1;
894  guint8 DTM_SUPPORT : 1;
895  guint8 PFC_FEATURE_MODE : 1;
896  guint8 EGPRS_Support : 1;
897 } GPRS_ExtensionInfoWithoutEGPRS_t;
898 
899 typedef struct
900 {
901  guint8 NotUsed : 7;
902  guint8 EGPRS_Support : 1;
903 } EGPRS_Support_t;
904 
905 typedef struct
906 {
907  guint8 ECSC : 1;
908  guint8 ECSR_3G : 1;
909 } NonGPRS_ExtensionInfo_t;
910 
911 typedef struct
912 {
913  guint8 Extension_Length;
914  union
915  {
916  EGPRS_Support_t EGPRS_Support;
917  GPRS_ExtensionInfoWithEGPRS_t GPRS_ExtensionInfoWithEGPRS;
918  GPRS_ExtensionInfoWithoutEGPRS_t GPRS_ExtensionInfoWithoutEGPRS;
919  NonGPRS_ExtensionInfo_t NonGPRS_ExtensionInfo;
920  guint8 Extension_Information[MAX_EXTENSION_LENGTH_IN_BYTES];
921  } u;
922 } Optional_Extension_Information_t;
923 
924 typedef struct
925 {
926  gboolean EGPRS_Support;
927  guint8 BEP_PERIOD;
928  gboolean EGPRS_PACKET_CHANNEL_REQUEST;
929 } EGPRS_OptionalExtensionInformation_t;
930 #endif
931 
932 typedef struct
933 {
934  guint8 NMO;
935  guint8 T3168;
936  guint8 T3192;
937  guint8 DRX_TIMER_MAX;
938  guint8 ACCESS_BURST_TYPE;
939  guint8 CONTROL_ACK_TYPE;
940  guint8 BS_CV_MAX;
941 
942  guint8 Exist_PAN;
943  guint8 PAN_DEC;
944  guint8 PAN_INC;
945  guint8 PAN_MAX;
946 
947  guint8 Exist_Extension_Bits;
948  Extension_Bits_t Extension_Bits;
950 
951 typedef struct
952 {
953  guint8 ALPHA;
954  guint8 T_AVG_W;
955  guint8 T_AVG_T;
956  guint8 PC_MEAS_CHAN;
957  guint8 N_AVG_I;
959 
960 typedef struct
961 {
962  guint8 RAC;
963  guint8 SPGC_CCCH_SUP;
964  guint8 PRIORITY_ACCESS_THR;
965  guint8 NETWORK_CONTROL_ORDER;
966  GPRS_Cell_Options_t GPRS_Cell_Options;
967  GPRS_Power_Control_Parameters_t GPRS_Power_Control_Parameters;
969 
970 typedef struct
971 {
972  guint8 Pb;
973  guint8 TSC;
974  guint8 TN;
975 
976  guint8 UnionType;
977  union
978  {
979  guint8 dummy;
980  guint16 ARFCN;
981  guint8 MAIO;
982  } u;
984 
985 typedef struct
986 {
987  guint8 PSI1_REPEAT_PERIOD;
988  PBCCH_Description_t PBCCH_Description;
990 
991 
992 
993 /* < Packet TBF Release message content > */
994 typedef guint8 TBF_RELEASE_CAUSE_t;
995 #if 0
996 #define TBF_RELEASE_CAUSE_NORMAL (0x00)
997 #define TBF_RELEASE_CAUSE_ABNORMAL (0x02)
998 #endif
999 
1000 typedef struct
1001 {
1002  guint8 MESSAGE_TYPE;
1003  guint8 PAGE_MODE;
1004  Global_TFI_t Global_TFI;
1005  guint8 UPLINK_RELEASE;
1006  guint8 DOWNLINK_RELEASE;
1007  TBF_RELEASE_CAUSE_t TBF_RELEASE_CAUSE;
1009 
1010 /* < Packet Control Acknowledgement message content > */
1011 typedef struct
1012 {
1013  guint8 Exist_CTRL_ACK_Extension;
1014  guint16 CTRL_ACK_Extension;
1016 
1017 typedef struct
1018 {
1019  guint8 Exist_TN_RRBP;
1020  guint8 TN_RRBP;
1021  guint8 Exist_G_RNTI_Extension;
1022  guint8 G_RNTI_Extension;
1023  gboolean Exist_AdditionsR6;
1026 
1027 typedef struct
1028 { /* Mac header */
1029  guint8 MESSAGE_TYPE;
1030  guint8 PayloadType;
1031  guint8 spare;
1032  guint8 R;
1033 
1034  guint32 TLLI;
1035  guint8 CTRL_ACK;
1036  gboolean Exist_AdditionsR5;
1039 
1041 
1042 #if 0
1043 typedef struct
1044 {
1045  guint8 CTRL_ACK;
1046 } Packet_Control_Acknowledgement_11_bit_t, Packet_Control_Acknowledgement_8_bit_t;
1047 #endif
1048 
1049 /* < Packet Downlink Dummy Control Block message content > */
1050 typedef struct
1051 {
1052  guint8 MESSAGE_TYPE;
1053  guint8 PAGE_MODE;
1054 
1055  guint8 Exist_PERSISTENCE_LEVEL;
1056  guint8 PERSISTENCE_LEVEL[4];
1058 
1059 /* < Packet Uplink Dummy Control Block message content > */
1060 typedef struct
1061 { /* Mac header */
1062  guint8 MESSAGE_TYPE;
1063  guint8 PayloadType;
1064  guint8 spare;
1065  guint8 R;
1066 
1067  guint32 TLLI;
1069 
1070 /* MS Radio Access capability IE >
1071  * 24.008 (10.5.5.12a)
1072  */
1073 typedef guint8 A5_bits_t;/* <A5 bits> ::= < A5/1 : bit> <A5/2 : bit> <A5/3 : bit> <A5/4 : bit> <A5/5 : bit> <A5/6 : bit> <A5/7 : bit>; -- bits for circuit mode ciphering algorithms */
1074 
1075 typedef struct
1076 {
1077  guint8 Exist_DTM_EGPRS_multislot_class;
1078  guint8 DTM_EGPRS_multislot_class;
1079 } DTM_EGPRS_t;
1080 
1081 typedef struct
1082 {
1083  guint8 Exist_DTM_EGPRS_HighMultislotClass;
1084  guint8 DTM_EGPRS_HighMultislotClass;
1086 
1087 typedef struct
1088 {
1089  guint8 MultislotCapabilityReductionForDL_DualCarrier;
1090  guint8 DL_DualCarrierForDTM;
1092 
1093 typedef struct
1094 {
1095  guint8 Exist_HSCSD_multislot_class;
1096  guint8 HSCSD_multislot_class;
1097 
1098  guint8 Exist_GPRS_multislot_class;
1099  guint8 GPRS_multislot_class;
1100  guint8 GPRS_Extended_Dynamic_Allocation_Capability;
1101 
1102  guint8 Exist_SM;
1103  guint8 SMS_VALUE;
1104  guint8 SM_VALUE;
1105 
1106 /*-------- Rel 99 additions */
1107  guint8 Exist_ECSD_multislot_class;
1108  guint8 ECSD_multislot_class;
1109 
1110  guint8 Exist_EGPRS_multislot_class;
1111  guint8 EGPRS_multislot_class;
1112  guint8 EGPRS_Extended_Dynamic_Allocation_Capability;
1113 
1114  guint8 Exist_DTM_GPRS_multislot_class;
1115  guint8 DTM_GPRS_multislot_class;
1116  guint8 Single_Slot_DTM;
1117  DTM_EGPRS_t DTM_EGPRS_Params;
1119 
1120 typedef struct
1121 {
1122  guint8 RF_Power_Capability;
1123 
1124  guint8 Exist_A5_bits;
1125  A5_bits_t A5_bits;
1126  /*-- zero means that the same values apply for parameters as in the immediately preceding Access capabilities field within this IE
1127  *-- The presence of the A5 bits is mandatory in the 1st Access capabilies struct within this IE.
1128  */
1129 
1130  guint8 ES_IND;
1131  guint8 PS;
1132  guint8 VGCS;
1133  guint8 VBS;
1134 
1135  guint8 Exist_Multislot_capability;
1136  Multislot_capability_t Multislot_capability;
1137  /* -- zero means that the same values apply for multislot parameters as in the immediately preceding Access capabilities field within this IE.
1138  * -- The presence of the Multislot capability struct is mandatory in the 1st Access capabilites struct within this IE.
1139  */
1140  /* -------- Rel 99 additions */
1141  guint8 Exist_Eight_PSK_Power_Capability;
1142  guint8 Eight_PSK_Power_Capability;
1143 
1144  guint8 COMPACT_Interference_Measurement_Capability;
1145  guint8 Revision_Level_Indicator;
1146  guint8 UMTS_FDD_Radio_Access_Technology_Capability;
1147  guint8 UMTS_384_TDD_Radio_Access_Technology_Capability;
1148  guint8 CDMA2000_Radio_Access_Technology_Capability;
1149 
1150  /* -------- R4 additions */
1151  guint8 UMTS_128_TDD_Radio_Access_Technology_Capability;
1152  guint8 GERAN_Feature_Package_1;
1153 
1154  guint8 Exist_Extended_DTM_multislot_class;
1155  guint8 Extended_DTM_GPRS_multislot_class;
1156  guint8 Extended_DTM_EGPRS_multislot_class;
1157 
1158  guint8 Modulation_based_multislot_class_support;
1159 
1160  /* -------- R5 additions */
1161  guint8 Exist_HighMultislotCapability;
1162  guint8 HighMultislotCapability;
1163 
1164  guint8 Exist_GERAN_lu_ModeCapability;
1165  guint8 GERAN_lu_ModeCapability;
1166 
1167  guint8 GMSK_MultislotPowerProfile;
1168  guint8 EightPSK_MultislotProfile;
1169 
1170  /* -------- R6 additions */
1171  guint8 MultipleTBF_Capability;
1172  guint8 DownlinkAdvancedReceiverPerformance;
1173  guint8 ExtendedRLC_MAC_ControlMessageSegmentionsCapability;
1174  guint8 DTM_EnhancementsCapability;
1175 
1176  guint8 Exist_DTM_GPRS_HighMultislotClass;
1177  guint8 DTM_GPRS_HighMultislotClass;
1178  DTM_EGPRS_HighMultislotClass_t DTM_EGPRS_HighMultislotClass;
1179  guint8 PS_HandoverCapability;
1180 
1181  /* -------- R7 additions */
1182  guint8 DTM_Handover_Capability;
1183  guint8 Exist_DownlinkDualCarrierCapability_r7;
1184  DownlinkDualCarrierCapability_r7_t DownlinkDualCarrierCapability_r7;
1185 
1186  guint8 FlexibleTimeslotAssignment;
1187  guint8 GAN_PS_HandoverCapability;
1188  guint8 RLC_Non_persistentMode;
1189  guint8 ReducedLatencyCapability;
1190  guint8 UplinkEGPRS2;
1191  guint8 DownlinkEGPRS2;
1192 
1193  /* -------- R8 additions */
1194  guint8 EUTRA_FDD_Support;
1195  guint8 EUTRA_TDD_Support;
1196  guint8 GERAN_To_EUTRAN_supportInGERAN_PTM;
1197  guint8 PriorityBasedReselectionSupport;
1198 
1199 } Content_t;
1200 
1201 typedef enum
1202 {/* See TS 24.008 table 10.5.146 */
1203  AccTech_GSMP = 0x0,
1204  AccTech_GSME = 0x1,
1205  AccTech_GSMR = 0x2,
1206  AccTech_GSM1800 = 0x3,
1207  AccTech_GSM1900 = 0x4,
1208  AccTech_GSM450 = 0x5,
1209  AccTech_GSM480 = 0x6,
1210  AccTech_GSM850 = 0x7,
1211  AccTech_GSM750 = 0x8,
1212  AccTech_GSMT830 = 0x9,
1213  AccTech_GSMT410 = 0xa,
1214  AccTech_GSMT900 = 0xb,
1215  AccTech_GSM710 = 0xc,
1216  AccTech_GSMT810 = 0xd,
1217  AccTech_GSMOther = 0xf
1218 } AccessTechnology_t;
1219 
1220 /* Maximum entries in one message, Enum above, applying restrictions from section
1221  12.30 "MS Radio Access Capability 2": */
1222 #define MAX_ACCESS_TECHNOLOGIES_COUNT 11
1223 
1224 typedef struct
1225 {
1226  AccessTechnology_t Access_Technology_Type;
1227  guint8 GMSK_Power_class;
1228  guint8 Eight_PSK_Power_class;
1230 
1231 typedef struct
1232 {
1233  guint8 Count_additional_access_technologies;
1234  /* The value 0xf cannot be set for the first ATT, therefore we can only have
1235  ABSOLUTE_MAX_BANDS-1 additional access technologies. */
1236  Additional_access_technologies_struct_t Additional_access_technologies[MAX_ACCESS_TECHNOLOGIES_COUNT-1];
1238 
1239 typedef struct
1240 {
1241  guint8 IndexOfAccTech; /* Position in AccessTechnology_t */
1242  union
1243  {
1244  /* Long Form */
1245  Content_t Content;
1246  /* Short Form */
1247  Additional_access_technologies_t Additional_access_technologies;
1248  } u;
1250 
1251 typedef struct
1252 {
1253  guint8 Count_MS_RA_capability_value; /* Recursive */
1254  MS_RA_capability_value_t MS_RA_capability_value[MAX_ACCESS_TECHNOLOGIES_COUNT];
1256 
1257 
1258 typedef struct
1259 {
1260  guint8 ExistEDGE_RF_PwrCap1;
1261  guint8 EDGE_RF_PwrCap1;
1262  guint8 ExistEDGE_RF_PwrCap2;
1263  guint8 EDGE_RF_PwrCap2;
1264 } EDGE_RF_Pwr_t;
1265 
1266 typedef struct
1267 {
1268  guint8 A5_Bits;
1269  guint8 Arc2_Spare;
1270  guint8 Arc1;
1271 } ARC_t;
1272 
1273 typedef struct
1274 {
1275  guint8 Multiband;
1276  union
1277  {
1278  guint8 A5_Bits;
1279  ARC_t ARC;
1280  } u;
1281 } Multiband_t;
1282 
1283 typedef struct /* MS classmark 3 R99 */
1284 {
1285  guint8 Spare1;
1286  Multiband_t Multiband;
1287 
1288  guint8 Exist_R_Support;
1289  guint8 R_GSM_Arc;
1290 
1291  guint8 Exist_MultiSlotCapability;
1292  guint8 MultiSlotClass;
1293 
1294  guint8 UCS2;
1295  guint8 ExtendedMeasurementCapability;
1296 
1297  guint8 Exist_MS_MeasurementCapability;
1298  guint8 SMS_VALUE;
1299  guint8 SM_VALUE;
1300 
1301  guint8 Exist_MS_PositioningMethodCapability;
1302  guint8 MS_PositioningMethod;
1303 
1304  guint8 Exist_EDGE_MultiSlotCapability;
1305  guint8 EDGE_MultiSlotClass;
1306 
1307  guint8 Exist_EDGE_Struct;
1308  guint8 ModulationCapability;
1309  EDGE_RF_Pwr_t EDGE_RF_PwrCaps;
1310 
1311  guint8 Exist_GSM400_Info;
1312  guint8 GSM400_Bands;
1313  guint8 GSM400_Arc;
1314 
1315  guint8 Exist_GSM850_Arc;
1316  guint8 GSM850_Arc;
1317 
1318  guint8 Exist_PCS1900_Arc;
1319  guint8 PCS1900_Arc;
1320 
1321  guint8 UMTS_FDD_Radio_Access_Technology_Capability;
1322  guint8 UMTS_384_TDD_Radio_Access_Technology_Capability;
1323  guint8 CDMA2000_Radio_Access_Technology_Capability;
1324 
1325  guint8 Exist_DTM_GPRS_multislot_class;
1326  guint8 DTM_GPRS_multislot_class;
1327  guint8 Single_Slot_DTM;
1328  DTM_EGPRS_t DTM_EGPRS_Params;
1329 
1330  /* -------- R4 additions */
1331  guint8 Exist_SingleBandSupport;
1332  guint8 GSM_Band;
1333 
1334  guint8 Exist_GSM_700_Associated_Radio_Capability;
1335  guint8 GSM_700_Associated_Radio_Capability;
1336 
1337  guint8 UMTS_128_TDD_Radio_Access_Technology_Capability;
1338  guint8 GERAN_Feature_Package_1;
1339 
1340  guint8 Exist_Extended_DTM_multislot_class;
1341  guint8 Extended_DTM_GPRS_multislot_class;
1342  guint8 Extended_DTM_EGPRS_multislot_class;
1343 
1344  /* -------- R5 additions */
1345  guint8 Exist_HighMultislotCapability;
1346  guint8 HighMultislotCapability;
1347 
1348  guint8 Exist_GERAN_lu_ModeCapability;
1349  guint8 GERAN_lu_ModeCapability;
1350 
1351  guint8 GERAN_FeaturePackage_2;
1352 
1353  guint8 GMSK_MultislotPowerProfile;
1354  guint8 EightPSK_MultislotProfile;
1355 
1356  /* -------- R6 additions */
1357  guint8 Exist_TGSM_400_Bands;
1358  guint8 TGSM_400_BandsSupported;
1359  guint8 TGSM_400_AssociatedRadioCapability;
1360 
1361  guint8 Exist_TGSM_900_AssociatedRadioCapability;
1362  guint8 TGSM_900_AssociatedRadioCapability;
1363 
1364  guint8 DownlinkAdvancedReceiverPerformance;
1365  guint8 DTM_EnhancementsCapability;
1366 
1367  guint8 Exist_DTM_GPRS_HighMultislotClass;
1368  guint8 DTM_GPRS_HighMultislotClass;
1369  guint8 OffsetRequired;
1370  DTM_EGPRS_HighMultislotClass_t DTM_EGPRS_HighMultislotClass;
1371  guint8 RepeatedSACCH_Capability;
1372 
1373  guint8 Spare2;
1375 
1376 
1377 /* < Packet Resource Request message content > */
1378 typedef struct
1379 {
1380  gboolean Exist;
1381  guint8 UnionType;
1382  union
1383  {
1384  guint8 MEAN_BEP_GMSK;
1385  guint8 MEAN_BEP_8PSK;
1386  } u;
1388 
1389 typedef struct
1390 {
1391  gboolean Exist;
1392  guint8 I_LEVEL;
1394 
1395 typedef struct
1396 {
1397  gboolean Exist_BEP_MEASUREMENTS;
1398  BEP_MeasurementReport_t BEP_MEASUREMENTS[8];
1399 
1400  gboolean Exist_INTERFERENCE_MEASUREMENTS;
1401  InterferenceMeasurementReport_t INTERFERENCE_MEASUREMENTS[8];
1403 
1404 typedef struct
1405 {
1406  gboolean Exist_MEAN_CV_BEP_GMSK;
1407  guint8 MEAN_BEP_GMSK;
1408  guint8 CV_BEP_GMSK;
1409 
1410  gboolean Exist_MEAN_CV_BEP_8PSK;
1411  guint8 MEAN_BEP_8PSK;
1412  guint8 CV_BEP_8PSK;
1414 
1415 typedef struct{
1416 guint8 RB_ID;
1417 guint8 RADIO_PRIORITY;
1418 
1419 gboolean Exist_RLC_BLOCK_COUNT;
1420 guint8 RLC_BLOCK_COUNT;
1421 
1422 gboolean Exist_Iu_Mode_ChRequestDesk;
1423 //IU_Mode_Channel_Request_Desk_t IU_Mode_Channel_Request_Desk1;
1424 
1426 
1427 typedef struct{
1428  gboolean Exist_G_RNTI_Extension;
1429  guint8 G_RNTI_Extension;
1430  IU_Mode_Channel_Request_Desk_t IU_Mode_Channel_Request_Desk;
1431 
1433 
1434 typedef struct{
1435  guint8 PFI;
1436  guint8 RADIO_PRIORITY;
1437  guint8 RLC_Mode;
1438 
1439  gboolean Exist_LCC_PDU;
1440  guint8 LCC_PDU;
1441 
1442  gboolean Exist_Ext_Channel_Request_desc;
1443 
1445 
1446 
1447 typedef struct{
1448  gboolean Exist_GMSK_MEAN_BEP;
1449  guint8 GMSK_MEAN_BEP;
1450  guint8 GMSK_CV_BEP;
1451 
1452  gboolean Exist_8PSK_MEAN_BEP;
1453  guint8 p8PSK_MEAN_BEP;
1454  guint8 p8PSK_CV_BEP;
1455 
1456  gboolean Exist_QPSK_MEAN_BEP;
1457  guint8 QPSK_MEAN_BEP;
1458  guint8 QPSK_CV_BEP;
1459 
1460  gboolean Exist_16QAM_NSR_MEAN_BEP;
1461  guint8 p16QAM_NSR_MEAN_BEP;
1462  guint8 p16QAM_NSR_CV_BEP;
1463 
1464  gboolean Exist_32QAM_NSR_MEAN_BEP;
1465  guint8 p32QAM_NSR_MEAN_BEP;
1466  guint8 p32QAM_NSR_CV_BEP;
1467 
1468  gboolean Exist_16QAM_HSR_MEAN_BEP;
1469  guint8 p16QAM_HSR_MEAN_BEP;
1470  guint8 p16QAM_HSR_CV_BEP;
1471 
1472  gboolean Exist_32QAM_HSR_MEAN_BEP;
1473  guint8 p32QAM_HSR_MEAN_BEP;
1474  guint8 p32QAM_HSR_CV_BEP;
1475 
1477 
1478 typedef struct
1479 {
1480  gboolean Exist;
1481  guint8 REPORTED_MODULATION;
1482  guint8 MEAN_BEP_TN;
1483 
1485 
1486 typedef struct
1487 {
1488  gboolean Exist;
1489  guint8 I_LEVEL;
1491 
1492 typedef struct
1493 {
1494  gboolean Exist_BEP_MEASUREMENTS;
1495  BEP_MeasurementReport_type2_t BEP_MEASUREMENTS[8];
1496 
1497  gboolean Exist_INTERFERENCE_MEASUREMENTS;
1498  InterferenceMeasurementReport_type2_t INTERFERENCE_MEASUREMENTS[8];
1499 
1501 
1502 
1503 typedef struct
1504 {
1505  gboolean Exist_Downlink_eTFI;
1506  guint8 DOWNLINK_ETFI;
1507 
1509 
1510 typedef struct
1511 {
1512  guint8 LOW_ACCESS_PRIORITY_SIGNALLING;
1513 
1514  gboolean Exist_AdditionsR12;
1515  PRR_AdditionsR12_t AdditionsR12;
1516 
1518 
1519 typedef struct
1520 {
1521  guint8 EARLY_TBF_ESTABLISHMENT;
1522 
1523  gboolean Exist_EGPRS_BEP_LinkQualityMeasurements_type2;
1524  EGPRS_BEP_LinkQualityMeasurements_type2_t EGPRS_BEP_LinkQualityMeasurements_type2;
1525 
1526  gboolean Exist_EGPRS_TimeslotLinkQualityMeasurements_type2;
1527  EGPRS_TimeslotLinkQualityMeasurements_type2_t EGPRS_TimeslotLinkQualityMeasurements_type2;
1528 
1529  gboolean Exist_AdditionsR10;
1530  PRR_AdditionsR10_t AdditionsR10;
1531 
1533 
1534 typedef struct
1535 {
1536  gboolean Exist_Ext_Channel_Request_desc;
1537  Ext_Channel_Request_desc_t Ext_Channel_Request_desc;
1538 
1539  guint8 Exist_AdditionsR7;
1540  PRR_AdditionsR7_t AdditionsR7;
1541 
1543 
1544 typedef struct
1545 {
1546  guint8 Exist_Iu_Mode_ChRequestDesk;
1547  IU_Mode_Channel_Request_Desk_RNTI_t IU_Mode_Channel_Request_Desk_RNTI;
1548 
1549  guint8 Exist_HFN_LSB;
1550  guint8 HFN_LSb;
1551 
1552  guint8 Exist_AdditionsR6;
1553  PRR_AdditionsR6_t AdditionsR6;
1554 
1556 
1557 typedef struct
1558 {
1559  gboolean Exist_EGPRS_BEP_LinkQualityMeasurements;
1560  EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1561 
1562  gboolean Exist_EGPRS_TimeslotLinkQualityMeasurements;
1563  EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1564 
1565  gboolean Exist_PFI;
1566  guint8 PFI;
1567 
1568  guint8 MS_RAC_AdditionalInformationAvailable;
1569  guint8 RetransmissionOfPRR;
1570 
1571  guint8 Exist_AdditionsR5;
1572  PRR_AdditionsR5_t AdditionsR5;
1574 
1575 typedef struct
1576 {
1577  guint8 UnionType;
1578  union
1579  {
1580  Global_TFI_t Global_TFI;
1581  guint32 TLLI;
1582  } u;
1584 
1585 typedef struct
1586 {
1587  guint8 MESSAGE_TYPE;
1588  guint8 PayloadType;
1589  guint8 spare;
1590  guint8 R;
1591 
1592  guint8 Exist_ACCESS_TYPE;
1593  guint8 ACCESS_TYPE;
1594 
1596 
1597  guint8 Exist_MS_Radio_Access_capability2;
1598  MS_Radio_Access_capability_t MS_Radio_Access_capability2;
1599 
1600  Channel_Request_Description_t Channel_Request_Description;
1601 
1602  guint8 Exist_CHANGE_MARK;
1603  guint8 CHANGE_MARK;
1604 
1605  guint8 C_VALUE;
1606 
1607  guint8 Exist_SIGN_VAR;
1608  guint8 SIGN_VAR;
1609 
1610  InterferenceMeasurementReport_t I_LEVEL_TN[8];
1611 
1612  guint8 Exist_AdditionsR99;
1613  PRR_AdditionsR99_t AdditionsR99;
1615 
1616 /* < Packet Mobile TBF Status message content >*/
1617 typedef struct
1618 {
1619  guint8 MESSAGE_TYPE;
1620  guint8 PayloadType;
1621  guint8 spare;
1622  guint8 R;
1623 
1624  Global_TFI_t Global_TFI;
1625  guint8 TBF_CAUSE;
1626 
1627  guint8 Exist_STATUS_MESSAGE_TYPE;
1628  guint8 STATUS_MESSAGE_TYPE;
1630 
1631 /* < Packet PSI Status message content >*/
1632 typedef struct
1633 {
1634  guint8 PSI_MESSAGE_TYPE;
1635  guint8 PSIX_CHANGE_MARK;
1636  guint8 Exist_PSIX_COUNT_and_Instance_Bitmap;
1637 } PSI_Message_t;
1638 
1639 typedef struct
1640 {
1641  guint8 Count_PSI_Message;
1642  PSI_Message_t PSI_Message[10];
1643 
1644  guint8 ADDITIONAL_MSG_TYPE;
1646 
1647 typedef struct
1648 {
1649  guint8 ADDITIONAL_MSG_TYPE;
1651 
1652 typedef struct
1653 {
1654  guint8 MESSAGE_TYPE;
1655  guint8 PayloadType;
1656  guint8 spare;
1657  guint8 R;
1658 
1659  Global_TFI_t Global_TFI;
1660  guint8 PBCCH_CHANGE_MARK;
1661 
1662  PSI_Message_List_t PSI_Message_List;
1663  Unknown_PSI_Message_List_t Unknown_PSI_Message_List;
1665 
1666 /* < Packet SI Status message content > */
1667 typedef struct
1668 {
1669  guint8 SI_MESSAGE_TYPE;
1670  guint8 MESS_REC;
1671  guint8 SIX_CHANGE_MARK;
1672 
1673  guint8 SIX_COUNT;
1674  guint8 Instance_bitmap[2];
1675 } SI_Message_t;
1676 
1677 typedef struct
1678 {
1679  guint8 Count_SI_Message;
1680  SI_Message_t SI_Message[10];
1681 
1682  guint8 ADDITIONAL_MSG_TYPE;
1684 
1685 typedef struct
1686 {
1687  guint8 ADDITIONAL_MSG_TYPE;
1689 
1690 typedef struct
1691 {
1692  guint8 MESSAGE_TYPE;
1693  guint8 PayloadType;
1694  guint8 spare;
1695  guint8 R;
1696 
1697  Global_TFI_t Global_TFI;
1698  guint8 BCCH_CHANGE_MARK;
1699 
1700  SI_Message_List_t SI_Message_List;
1701  Unknown_SI_Message_List_t Unknown_SI_Message_List;
1703 
1704 typedef struct
1705 {
1706  guint16 FDD_ARFCN;
1707  guint8 DIVERSITY;
1708  guint8 Exist_Bandwith_FDD;
1709  guint8 BANDWITH_FDD;
1710  guint16 SCRAMBLING_CODE;
1712 
1713 typedef struct
1714 {
1715  guint16 TDD_ARFCN;
1716  guint8 DIVERSITY_TDD;
1717  guint8 Exist_Bandwith_TDD;
1718  guint8 BANDWITH_TDD;
1719  guint16 CELL_PARAMETER;
1720  guint8 Sync_Case_TSTD;
1722 
1723 typedef struct
1724 {
1725  guint16 EARFCN;
1726  guint8 Exist_Measurement_Bandwidth;
1727  guint8 Measurement_Bandwidth;
1728  guint16 Physical_Layer_Cell_Identity;
1730 
1731 typedef struct
1732 {
1733  guint32 UTRAN_CI;
1734  guint8 Exist_PLMN_ID;
1735  PLMN_t PLMN_ID;
1737 
1738 typedef struct
1739 {
1740  guint32 EUTRAN_CI;
1741  guint16 Tracking_Area_Code;
1742  guint8 Exist_PLMN_ID;
1743  PLMN_t PLMN_ID;
1745 
1746 typedef struct
1747 {
1748  guint8 Exist_UTRAN_CSG_Target_Cell;
1749  UTRAN_CSG_Target_Cell_t UTRAN_CSG_Target_Cell;
1750  guint8 Exist_EUTRAN_CSG_Target_Cell;
1751  EUTRAN_CSG_Target_Cell_t EUTRAN_CSG_Target_Cell;
1753 
1754 typedef struct
1755 {
1756  guint8 Exist_EUTRAN_Target_Cell;
1757  EUTRAN_Target_Cell_t EUTRAN_Target_Cell;
1758  guint8 Exist_AdditionsR9;
1759  PCCF_AdditionsR9_t AdditionsR9;
1761 
1762 typedef struct
1763 {
1764  guint8 Exist_G_RNTI_extention;
1765  guint8 G_RNTI_extention;
1766  guint8 Exist_AdditionsR8;
1767  PCCF_AdditionsR8_t AdditionsR8;
1769 
1770 typedef struct
1771 {
1772  guint8 Exist_FDD_Description;
1773  FDD_Target_Cell_t FDD_Target_Cell;
1774  guint8 Exist_TDD_Description;
1775  TDD_Target_Cell_t TDD_Target_Cell;
1776  guint8 Exist_AdditionsR5;
1777  PCCF_AdditionsR5_t AdditionsR5;
1779 
1780 /* < Packet Cell Change Failure message content > */
1781 typedef struct
1782 {
1783  guint8 MESSAGE_TYPE;
1784  guint8 PayloadType;
1785  guint8 spare;
1786  guint8 R;
1787 
1788  guint32 TLLI;
1789  guint16 ARFCN;
1790  guint8 BSIC;
1791  guint8 CAUSE;
1792  gboolean Exist_AdditionsR99;
1793  PCCF_AdditionsR99_t AdditionsR99;
1795 
1796 /* < Packet Downlink Ack/Nack message content > */
1797 typedef struct
1798 {
1799  gboolean Exist_PFI;
1800  guint8 PFI;
1802 
1803 typedef struct
1804 {
1805  guint8 MESSAGE_TYPE;
1806  guint8 PayloadType;
1807  guint8 spare;
1808  guint8 R;
1809 
1810  guint8 DOWNLINK_TFI;
1811  Ack_Nack_Description_t Ack_Nack_Description;
1812 
1813  guint8 Exist_Channel_Request_Description;
1814  Channel_Request_Description_t Channel_Request_Description;
1815 
1816  Channel_Quality_Report_t Channel_Quality_Report;
1817 
1818  gboolean Exist_AdditionsR99;
1819  PD_AckNack_AdditionsR99_t AdditionsR99;
1821 
1822 /* < EGPRS Packet Downlink Ack/Nack message content > */
1823 typedef struct
1824 {
1825  EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1826  guint8 C_VALUE;
1827  EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1829 
1830 typedef struct
1831 {
1832  guint8 MESSAGE_TYPE;
1833  guint8 PayloadType;
1834  guint8 spare;
1835  guint8 R;
1836 
1837  guint8 DOWNLINK_TFI;
1838  guint8 MS_OUT_OF_MEMORY;
1839 
1840  gboolean Exist_EGPRS_ChannelQualityReport;
1841  EGPRS_ChannelQualityReport_t EGPRS_ChannelQualityReport;
1842 
1843  gboolean Exist_ChannelRequestDescription;
1844  Channel_Request_Description_t ChannelRequestDescription;
1845 
1846  gboolean Exist_PFI;
1847  guint8 PFI;
1848 
1849  gboolean Exist_ExtensionBits;
1850  Extension_Bits_t ExtensionBits;
1851 
1852  EGPRS_AckNack_t EGPRS_AckNack;
1854 
1855 /* < Packet Uplink Ack/Nack message content 04.60 sec.11.2.28 > */
1856 
1857 typedef struct
1858 {
1859  guint8 Exist_CONTENTION_RESOLUTION_TLLI;
1860  guint32 CONTENTION_RESOLUTION_TLLI;
1861 
1862  guint8 Exist_Packet_Timing_Advance;
1863  Packet_Timing_Advance_t Packet_Timing_Advance;
1864 
1865  guint8 Exist_Extension_Bits;
1866  Extension_Bits_t Extension_Bits;
1867 
1868  guint8 Exist_Power_Control_Parameters;
1869  Power_Control_Parameters_t Power_Control_Parameters;
1871 
1872 typedef struct
1873 {
1874  gboolean Exist_PacketExtendedTimingAdvance;
1875  guint8 PacketExtendedTimingAdvance;
1876  guint8 TBF_EST;
1878 
1879 /* Table 11.2.28.1: PACKET UPLINK ACK/NACK information elements */
1880 typedef struct
1881 {
1882  guint8 Error;
1883  /* Fixed Allocation Parameters was removed from specs.
1884  * TODO: implement for old versions of spec.
1885  */
1887 
1888 typedef struct
1889 {
1890  guint8 CHANNEL_CODING_COMMAND;
1891  Ack_Nack_Description_t Ack_Nack_Description;
1892 
1893  gboolean Exist_Fixed_Allocation_Parameters;
1894  Fixed_Allocation_Parameters_t Fixed_Allocation_Parameters;
1895 
1896  gboolean Exist_AdditionsR99;
1897  PU_AckNack_GPRS_AdditionsR99_t AdditionsR99;
1898 
1899  Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1901 
1902 typedef struct
1903 {
1904  guint8 EGPRS_ChannelCodingCommand;
1905  guint8 RESEGMENT;
1906  guint8 PRE_EMPTIVE_TRANSMISSION;
1907  guint8 PRR_RETRANSMISSION_REQUEST;
1908  guint8 ARAC_RETRANSMISSION_REQUEST;
1909 
1910  guint8 TBF_EST;
1911 
1912  gboolean Exist_Packet_Extended_Timing_Advance;
1913  guint8 Packet_Extended_Timing_Advance;
1914 
1915  EGPRS_AckNack_t EGPRS_AckNack;
1916 
1917 
1918  Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1920 
1921 typedef struct
1922 {
1923  guint8 UnionType;
1924  union
1925  {
1926  PU_AckNack_EGPRS_00_t PU_AckNack_EGPRS_00;
1927  guint8 extension_01;
1928  guint8 extension_10;
1929  guint8 extension_11;
1930  } u;
1932 
1933 #if 0
1934 enum PUAN_Type
1935 {
1936  PUAN_GPRS,
1937  PUAN_EGPRS
1938 };
1939 #endif
1940 
1941 typedef struct
1942 {
1943  guint8 MESSAGE_TYPE;
1944  guint8 PAGE_MODE;
1945  guint8 UPLINK_TFI;
1946 
1947  guint8 UnionType;
1948  union
1949  {
1950  PU_AckNack_GPRS_t PU_AckNack_GPRS_Struct;
1951  PU_AckNack_EGPRS_t PU_AckNack_EGPRS_Struct;
1952  } u;
1954 
1955 /* < Packet Uplink Assignment message content > */
1956 typedef struct
1957 {
1958  guint8 CHANGE_MARK_1;
1959  guint8 Exist_CHANGE_MARK_2;
1960  guint8 CHANGE_MARK_2;
1961 } CHANGE_MARK_t;
1962 
1963 typedef struct
1964 {
1965  guint8 MAIO;
1966  guint8 MA_NUMBER;
1967 
1968  guint8 Exist_CHANGE_MARK;
1969  CHANGE_MARK_t CHANGE_MARK;
1971 
1972 typedef struct
1973 {
1974  guint8 MAIO;
1975  GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
1977 
1978 typedef struct
1979 {
1980  guint8 MAIO;
1981  guint8 HSN;
1982  guint8 Length_of_MA_Frequency_List;
1983  guint8 MA_Frequency_List[15+3];
1985 
1986 typedef struct
1987 {
1988  guint8 TSC;
1989  guint8 UnionType;
1990  union
1991  {
1992  guint16 ARFCN;
1993  Indirect_encoding_t Indirect_encoding;
1994  Direct_encoding_1_t Direct_encoding_1;
1995  Direct_encoding_2_t Direct_encoding_2;
1996  } u;
1998 
1999 typedef struct
2000 {
2001  guint8 Exist;
2002  guint8 USF_TN;
2004 
2005 typedef struct
2006 {
2007  guint8 ALPHA;
2008 
2009  struct
2010  {
2011  guint8 Exist;
2012  guint8 USF_TN;
2013  guint8 GAMMA_TN;
2014  } Slot[8];
2016 
2017 typedef struct
2018 {
2019  guint8 Extended_Dynamic_Allocation;
2020 
2021  guint8 Exist_P0;
2022  guint8 P0;
2023  guint8 PR_MODE;
2024 
2025  guint8 USF_GRANULARITY;
2026 
2027  guint8 Exist_UPLINK_TFI_ASSIGNMENT;
2028  guint8 UPLINK_TFI_ASSIGNMENT;
2029 
2030  guint8 Exist_RLC_DATA_BLOCKS_GRANTED;
2031  guint8 RLC_DATA_BLOCKS_GRANTED;
2032 
2033  guint8 Exist_TBF_Starting_Time;
2034  Starting_Frame_Number_t TBF_Starting_Time;
2035 
2036  guint8 UnionType;
2037  union
2038  {
2039  Timeslot_Allocation_t Timeslot_Allocation[8];
2040  Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
2041  } u;
2043 
2044 typedef struct
2045 {
2046  guint8 Extended_Dynamic_Allocation;
2047 
2048  guint8 Exist_P0;
2049  guint8 P0;
2050  guint8 PR_MODE;
2051 
2052  guint8 USF_GRANULARITY;
2053 
2054  guint8 Exist_UPLINK_TFI_ASSIGNMENT;
2055  guint8 UPLINK_TFI_ASSIGNMENT;
2056 
2057  guint8 Exist_RLC_DATA_BLOCKS_GRANTED;
2058  guint8 RLC_DATA_BLOCKS_GRANTED;
2059 
2060  guint8 UnionType;
2061  union
2062  {
2063  Timeslot_Allocation_t Timeslot_Allocation[8];
2064  Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
2065  } u;
2067 
2068 typedef struct
2069 {
2070  guint8 TIMESLOT_NUMBER;
2071 
2072  guint8 Exist_ALPHA_and_GAMMA_TN;
2073  guint8 ALPHA;
2074  guint8 GAMMA_TN;
2075 
2076  guint8 Exist_P0;
2077  guint8 P0;
2078  guint8 BTS_PWR_CTRL_MODE;
2079  guint8 PR_MODE;
2080 
2081  Starting_Frame_Number_t TBF_Starting_Time;
2083 
2084 typedef struct
2085 {
2086  guint8 TIMESLOT_NUMBER;
2087 
2088  guint8 Exist_ALPHA_and_GAMMA_TN;
2089  guint8 ALPHA;
2090  guint8 GAMMA_TN;
2091 
2092  guint8 Exist_P0;
2093  guint8 P0;
2094  guint8 BTS_PWR_CTRL_MODE;
2095  guint8 PR_MODE;
2096 
2098 
2099 typedef struct
2100 {
2101  guint8 UnionType;
2102  union
2103  {
2104  Global_TFI_t Global_TFI;
2105  guint32 TLLI;
2106  guint16 TQI;
2107  Packet_Request_Reference_t Packet_Request_Reference;
2108  } u;
2110 
2111 typedef struct
2112 {
2113  gboolean Exist_Packet_Extended_Timing_Advance;
2114  guint8 Packet_Extended_Timing_Advance;
2116 
2117 typedef struct
2118 {
2119  guint8 CHANNEL_CODING_COMMAND;
2120  guint8 TLLI_BLOCK_CHANNEL_CODING;
2121  Packet_Timing_Advance_t Packet_Timing_Advance;
2122 
2123  guint8 Exist_Frequency_Parameters;
2124  Frequency_Parameters_t Frequency_Parameters;
2125 
2126  guint8 UnionType;
2127  union
2128  {
2129  guint8 extension;
2130  Dynamic_Allocation_t Dynamic_Allocation;
2131  Single_Block_Allocation_t Single_Block_Allocation;
2132  guint8 FixedAllocationDummy;
2133  } u;
2134 
2135  gboolean Exist_AdditionsR99;
2136  PUA_GPRS_AdditionsR99_t AdditionsR99;
2137 } PUA_GPRS_t;
2138 
2139 typedef struct
2140 {
2141  guint8 BitmapLength;
2142  guint8 ReducedMA_Bitmap[127 / 8 + 1];
2143 
2144  gboolean Exist_MAIO_2;
2145  guint8 MAIO_2;
2147 
2148 typedef struct
2149 {
2150  guint8 TIMESLOT_NUMBER;
2151 
2152  gboolean Exist_ALPHA_GAMMA_TN;
2153  guint8 ALPHA;
2154  guint8 GAMMA_TN;
2155 
2156  gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
2157  guint8 P0;
2158  guint8 BTS_PWR_CTRL_MODE;
2159  guint8 PR_MODE;
2160 
2161  Starting_Frame_Number_t TBF_Starting_Time;
2162  guint8 NUMBER_OF_RADIO_BLOCKS_ALLOCATED;
2164 
2165 typedef struct
2166 {
2167  gboolean Exist_CONTENTION_RESOLUTION_TLLI;
2168  guint32 CONTENTION_RESOLUTION_TLLI;
2169 
2170  gboolean Exist_COMPACT_ReducedMA;
2171  COMPACT_ReducedMA_t COMPACT_ReducedMA;
2172 
2173  guint8 EGPRS_CHANNEL_CODING_COMMAND;
2174  guint8 RESEGMENT;
2175  guint8 EGPRS_WindowSize;
2176 
2177  guint8 NrOfAccessTechnologies; /* will hold the number of list elements */
2178  guint8 AccessTechnologyType[MAX_ACCESS_TECHOLOGY_TYPES]; /* for max size of array see 24.008/Table 10.5.146 */
2179 
2180  guint8 ARAC_RETRANSMISSION_REQUEST;
2181  guint8 TLLI_BLOCK_CHANNEL_CODING;
2182 
2183  gboolean Exist_BEP_PERIOD2;
2184  guint8 BEP_PERIOD2;
2185 
2186  Packet_Timing_Advance_t PacketTimingAdvance;
2187 
2188  gboolean Exist_Packet_Extended_Timing_Advance;
2189  guint8 Packet_Extended_Timing_Advance;
2190 
2191  gboolean Exist_Frequency_Parameters;
2192  Frequency_Parameters_t Frequency_Parameters;
2193 
2194  guint8 UnionType;
2195  union
2196  {
2197  guint8 extension;
2198  Dynamic_Allocation_t Dynamic_Allocation;
2199  MultiBlock_Allocation_t MultiBlock_Allocation;
2200  guint8 FixedAllocationDummy;/* Fixed Allocation is not used */
2201  } u;
2202 } PUA_EGPRS_00_t;
2203 
2204 typedef struct
2205 {
2206  guint8 UnionType;
2207  union
2208  {
2209  PUA_EGPRS_00_t PUA_EGPRS_00;
2210  guint8 PUA_EGPRS_01;
2211  guint8 PUA_EGPRS_10;
2212  guint8 PUA_EGPRS_11;
2213  } u;
2214 } PUA_EGPRS_t;
2215 
2216 #if 0
2217 enum PUA_Type
2218 {
2219  PUA_GPRS,
2220  PUA_EGPRS
2221 };
2222 #endif
2223 
2224 typedef struct
2225 {
2226  guint8 MESSAGE_TYPE;
2227  guint8 PAGE_MODE;
2228 
2229  guint8 Exist_PERSISTENCE_LEVEL;
2230  guint8 PERSISTENCE_LEVEL[4];
2231 
2232  PacketUplinkID_t ID;
2233 
2234  guint8 UnionType;
2235  union
2236  {
2237  PUA_GPRS_t PUA_GPRS_Struct;
2238  PUA_EGPRS_t PUA_EGPRS_Struct;
2239  } u;
2241 
2242 
2243 /* < DTM Packet Uplink Assignment message content > */
2244 typedef struct
2245 {
2246  guint8 CHANNEL_CODING_COMMAND;
2247  guint8 TLLI_BLOCK_CHANNEL_CODING;
2248  Packet_Timing_Advance_t Packet_Timing_Advance;
2249 
2250  guint8 UnionType;
2251  union
2252  {
2253  guint8 extension;
2254  DTM_Dynamic_Allocation_t DTM_Dynamic_Allocation;
2255  DTM_Single_Block_Allocation_t DTM_Single_Block_Allocation;
2256  } u;
2257  gboolean Exist_EGPRS_Parameters;
2258  guint8 EGPRS_CHANNEL_CODING_COMMAND;
2259  guint8 RESEGMENT;
2260  guint8 EGPRS_WindowSize;
2261  gboolean Exist_Packet_Extended_Timing_Advance;
2262  guint8 Packet_Extended_Timing_Advance;
2264 
2265 typedef struct
2266 {
2267  DTM_Packet_Uplink_Assignment_t DTM_Packet_Uplink_Assignment;
2268 } DTM_UL_t;
2269 
2270 /* < DTM Packet Channel Request message content > */
2271 typedef struct
2272 {
2273  guint8 DTM_Pkt_Est_Cause;
2274  Channel_Request_Description_t Channel_Request_Description;
2275  gboolean Exist_PFI;
2276  guint8 PFI;
2278 
2279 /* < Packet Downlink Assignment message content > */
2280 typedef struct
2281 {
2282  Starting_Frame_Number_t Measurement_Starting_Time;
2283  guint8 MEASUREMENT_INTERVAL;
2284  guint8 MEASUREMENT_BITMAP;
2286 
2287 typedef struct
2288 {
2289  guint8 UnionType;
2290  union
2291  {
2292  Global_TFI_t Global_TFI;
2293  guint32 TLLI;
2294  } u;
2296 
2297 typedef struct
2298 {
2299  gboolean Exist_EGPRS_Params; /* if Exist_EGPRS_Params == FALSE then none of the following 4 vars exist */
2300  guint8 EGPRS_WindowSize;
2301  guint8 LINK_QUALITY_MEASUREMENT_MODE;
2302  gboolean Exist_BEP_PERIOD2;
2303  guint8 BEP_PERIOD2;
2304 
2305  gboolean Exist_Packet_Extended_Timing_Advance;
2306  guint8 Packet_Extended_Timing_Advance;
2307 
2308  gboolean Exist_COMPACT_ReducedMA;
2309  COMPACT_ReducedMA_t COMPACT_ReducedMA;
2311 
2312 typedef struct
2313 {
2314  guint8 MESSAGE_TYPE;
2315  guint8 PAGE_MODE;
2316 
2317  gboolean Exist_PERSISTENCE_LEVEL;
2318  guint8 PERSISTENCE_LEVEL[4];
2319 
2320  PacketDownlinkID_t ID;
2321 
2322  guint8 MAC_MODE;
2323  guint8 RLC_MODE;
2324  guint8 CONTROL_ACK;
2325  guint8 TIMESLOT_ALLOCATION;
2326  Packet_Timing_Advance_t Packet_Timing_Advance;
2327 
2328  gboolean Exist_P0_and_BTS_PWR_CTRL_MODE;
2329  guint8 P0;
2330  guint8 BTS_PWR_CTRL_MODE;
2331  guint8 PR_MODE;
2332 
2333  gboolean Exist_Frequency_Parameters;
2334  Frequency_Parameters_t Frequency_Parameters;
2335 
2336  gboolean Exist_DOWNLINK_TFI_ASSIGNMENT;
2337  guint8 DOWNLINK_TFI_ASSIGNMENT;
2338 
2339  gboolean Exist_Power_Control_Parameters;
2340  Power_Control_Parameters_t Power_Control_Parameters;
2341 
2342  gboolean Exist_TBF_Starting_Time;
2343  Starting_Frame_Number_t TBF_Starting_Time;
2344 
2345  guint8 Exist_Measurement_Mapping;
2346  Measurement_Mapping_struct_t Measurement_Mapping;
2347 
2348  gboolean Exist_AdditionsR99;
2349  PDA_AdditionsR99_t AdditionsR99;
2351 
2352 /* < DTM Packet Downlink Assignment message content > */
2353 typedef struct
2354 {
2355  guint8 MAC_MODE;
2356  guint8 RLC_MODE;
2357  guint8 TIMESLOT_ALLOCATION;
2358  Packet_Timing_Advance_t Packet_Timing_Advance;
2359 
2360  guint8 Exist_P0_and_BTS_PWR_CTRL_MODE;
2361  guint8 P0;
2362  guint8 BTS_PWR_CTRL_MODE;
2363  guint8 PR_MODE;
2364 
2365  guint8 Exist_Power_Control_Parameters;
2366  Power_Control_Parameters_t Power_Control_Parameters;
2367 
2368  guint8 Exist_DOWNLINK_TFI_ASSIGNMENT;
2369  guint8 DOWNLINK_TFI_ASSIGNMENT;
2370 
2371  guint8 Exist_Measurement_Mapping;
2372  Measurement_Mapping_struct_t Measurement_Mapping;
2373  gboolean EGPRS_Mode;
2374  guint8 EGPRS_WindowSize;
2375  guint8 LINK_QUALITY_MEASUREMENT_MODE;
2376  gboolean Exist_Packet_Extended_Timing_Advance;
2377  guint8 Packet_Extended_Timing_Advance;
2379 
2380 typedef struct
2381 {
2382  DTM_Packet_Downlink_Assignment_t DTM_Packet_Downlink_Assignment;
2383 } DTM_DL_t;
2384 
2385 typedef struct
2386 {
2387  GPRS_Cell_Options_t GPRS_Cell_Options;
2388  GPRS_Power_Control_Parameters_t GPRS_Power_Control_Parameters;
2390 
2391 typedef struct
2392 {
2393  DTM_GPRS_Broadcast_Information_t DTM_GPRS_Broadcast_Information;
2394 } DTM_GPRS_B_t;
2395 
2396 /* < Packet Paging Request message content > */
2397 typedef struct
2398 {
2399  guint8 UnionType;
2400  union
2401  {
2402  TMSI_t PTMSI;
2403  struct MobileId Mobile_Identity;
2404  } u;
2406 
2407 typedef struct
2408 {
2409  guint8 UnionType;
2410  union
2411  {
2412  TMSI_t TMSI;
2413  struct MobileId Mobile_Identity;
2414  } u;
2415 
2416  guint8 CHANNEL_NEEDED;
2417 
2418  guint8 Exist_eMLPP_PRIORITY;
2419  guint8 eMLPP_PRIORITY;
2421 
2422 typedef struct
2423 {
2424  guint8 UnionType;
2425  union
2426  {
2428  Page_request_for_RR_conn_t Page_req_RR;
2429  } u;
2431 
2432 typedef struct
2433 {
2434  guint8 MESSAGE_TYPE;
2435  guint8 PAGE_MODE;
2436 
2437  guint8 Exist_PERSISTENCE_LEVEL;
2438  guint8 PERSISTENCE_LEVEL[4];
2439 
2440  guint8 Exist_NLN;
2441  guint8 NLN;
2442 
2443  guint8 Count_Repeated_Page_info;
2444  Repeated_Page_info_t Repeated_Page_info[5];
2446 
2447 typedef struct
2448 {
2449  guint8 MESSAGE_TYPE;
2450  guint8 PAGE_MODE;
2451 
2452  guint8 TIMESLOTS_AVAILABLE;
2454 
2455 /* < Packet Power Control/Timing Advance message content > */
2456 typedef struct
2457 {
2458  guint8 UnionType;
2459  union
2460  {
2461  Global_TFI_t Global_TFI;
2462  guint16 TQI;
2463  Packet_Request_Reference_t Packet_Request_Reference;
2464  } u;
2466 
2467 typedef struct
2468 {
2469  Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2470  Power_Control_Parameters_t Power_Control_Parameters;
2472 
2473 typedef struct
2474 {
2475  guint8 UnionType;
2476  union
2477  {
2478  Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2479  Power_Control_Parameters_t Power_Control_Parameters;
2480  } u;
2482 
2483 typedef struct
2484 {
2485  guint8 MESSAGE_TYPE;
2486  guint8 PAGE_MODE;
2487 
2489 
2490  /* -- Message escape */
2491  guint8 Exist_Global_Power_Control_Parameters;
2492  Global_Power_Control_Parameters_t Global_Power_Control_Parameters;
2493 
2494  guint8 UnionType;
2495  union
2496  {
2497  GlobalTimingAndPower_t GlobalTimingAndPower;
2498  GlobalTimingOrPower_t GlobalTimingOrPower;
2499  } u;
2501 
2502 /* < Packet Queueing Notification message content > */
2503 typedef struct
2504 {
2505  guint8 MESSAGE_TYPE;
2506  guint8 PAGE_MODE;
2507 
2508  /* 111 Fixed */
2509  Packet_Request_Reference_t Packet_Request_Reference;
2510  guint16 TQI;
2512 
2513 /* < Packet Timeslot Reconfigure message content 04.60 sec. 11.2.31> */
2514 
2516 
2517 typedef struct
2518 {
2519  Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2520 
2521  guint8 DOWNLINK_RLC_MODE;
2522  guint8 CONTROL_ACK;
2523 
2524  guint8 Exist_DOWNLINK_TFI_ASSIGNMENT;
2525  guint8 DOWNLINK_TFI_ASSIGNMENT;
2526 
2527  guint8 Exist_UPLINK_TFI_ASSIGNMENT;
2528  guint8 UPLINK_TFI_ASSIGNMENT;
2529 
2530  guint8 DOWNLINK_TIMESLOT_ALLOCATION;
2531 
2532  guint8 Exist_Frequency_Parameters;
2533  Frequency_Parameters_t Frequency_Parameters;
2535 
2536 typedef struct
2537 {
2538  gboolean Exist_Packet_Extended_Timing_Advance;
2539  guint8 Packet_Extended_Timing_Advance;
2541 
2542 typedef struct
2543 {
2544  guint8 CHANNEL_CODING_COMMAND;
2545 
2546  Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2547 
2548  guint8 UnionType;
2549  union
2550  {
2551  TRDynamic_Allocation_t Dynamic_Allocation;
2552  guint8 Fixed_AllocationDummy;
2553  } u;
2554 
2555  gboolean Exist_AdditionsR99;
2556  PTR_GPRS_AdditionsR99_t AdditionsR99;
2557 } PTR_GPRS_t;
2558 
2559 typedef struct
2560 {
2561  gboolean Exist_COMPACT_ReducedMA;
2562  COMPACT_ReducedMA_t COMPACT_ReducedMA;
2563 
2564  guint8 EGPRS_ChannelCodingCommand;
2565  guint8 RESEGMENT;
2566 
2567  gboolean Exist_DOWNLINK_EGPRS_WindowSize;
2568  guint8 DOWNLINK_EGPRS_WindowSize;
2569 
2570  gboolean Exist_UPLINK_EGPRS_WindowSize;
2571  guint8 UPLINK_EGPRS_WindowSize;
2572 
2573  guint8 LINK_QUALITY_MEASUREMENT_MODE;
2574 
2575  gboolean Exist_Packet_Extended_Timing_Advance;
2576  guint8 Packet_Extended_Timing_Advance;
2577 
2578  Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2579 
2580  guint8 UnionType;
2581  union
2582  {
2583  TRDynamic_Allocation_t Dynamic_Allocation;
2584  guint8 FixedAllocationDummy;
2585  } u;
2586 } PTR_EGPRS_00_t;
2587 
2588 typedef struct
2589 {
2590  guint8 UnionType;
2591  union
2592  {
2593  PTR_EGPRS_00_t PTR_EGPRS_00;
2594  guint8 extension_01;
2595  guint8 extension_10;
2596  guint8 extension_11;
2597  } u;
2598 } PTR_EGPRS_t;
2599 
2600 #if 0
2601 enum PTR_Type
2602 {
2603  PTR_GPRS,
2604  PTR_EGPRS
2605 };
2606 #endif
2607 
2608 typedef struct
2609 {
2610  guint8 MESSAGE_TYPE;
2611  guint8 PAGE_MODE;
2612 
2613  Global_TFI_t Global_TFI;
2614 
2615  guint8 UnionType;
2616  union
2617  {
2618  PTR_GPRS_t PTR_GPRS_Struct;
2619  PTR_EGPRS_t PTR_EGPRS_Struct;
2620  } u;
2622 
2623 
2624 /* < PSI1 message content > */
2625 typedef struct
2626 {
2627  guint8 ACC_CONTR_CLASS[2];
2628  guint8 MAX_RETRANS[4];
2629  guint8 S;
2630  guint8 TX_INT;
2631 
2632  guint8 Exist_PERSISTENCE_LEVEL;
2633  guint8 PERSISTENCE_LEVEL[4];
2634 } PRACH_Control_t;
2635 
2636 typedef struct
2637 {
2638  guint8 BS_PCC_REL;
2639  guint8 BS_PBCCH_BLKS;
2640  guint8 BS_PAG_BLKS_RES;
2641  guint8 BS_PRACH_BLKS;
2643 
2644 typedef struct
2645 {
2646  guint8 LB_MS_TXPWR_MAX_CCH;
2648 
2649 typedef struct
2650 {
2651  guint8 MSCR;
2652  guint8 SGSNR;
2653  guint8 BandIndicator;
2654  gboolean Exist_AdditionsR6;
2655  PSI1_AdditionsR6_t AdditionsR6;
2657 
2658 typedef struct
2659 {
2660  guint8 MESSAGE_TYPE;
2661 
2662  guint8 PAGE_MODE;
2663  guint8 PBCCH_CHANGE_MARK;
2664  guint8 PSI_CHANGE_FIELD;
2665  guint8 PSI1_REPEAT_PERIOD;
2666  guint8 PSI_COUNT_LR;
2667 
2668  guint8 Exist_PSI_COUNT_HR;
2669  guint8 PSI_COUNT_HR;
2670 
2671  guint8 MEASUREMENT_ORDER;
2672  GPRS_Cell_Options_t GPRS_Cell_Options;
2673  PRACH_Control_t PRACH_Control;
2674  PCCCH_Organization_t PCCCH_Organization;
2675  Global_Power_Control_Parameters_t Global_Power_Control_Parameters;
2676  guint8 PSI_STATUS_IND;
2677 
2678  gboolean Exist_AdditionsR99;
2679  PSI1_AdditionsR99_t AdditionsR99;
2680 } PSI1_t;
2681 
2682 /* < PSI2 message content > */
2683 typedef struct
2684 {
2685  guint8 NUMBER;
2686 
2687  guint8 Length;
2688  guint8 Contents[15 + 3];/* octet (val(Length of RFL contents) + 3) */
2690 
2691 typedef struct
2692 {
2693  guint8 NoOfRFLs;
2694  guint8 RFL_Number[MAX_RFLS];
2696 
2697 typedef struct
2698 {
2699  guint8 NUMBER;
2700  GPRS_Mobile_Allocation_t Mobile_Allocation;
2701 } PSI2_MA_t;
2702 
2703 typedef struct
2704 {
2705  guint16 ARFCN;
2706  guint8 TIMESLOT_ALLOCATION;
2708 
2709 typedef struct
2710 {
2711  guint8 Count_Carriers;
2712  Non_Hopping_PCCCH_Carriers_t Carriers[7];
2714 
2715 typedef struct
2716 {
2717  guint8 MAIO;
2718  guint8 TIMESLOT_ALLOCATION;
2720 
2721 typedef struct
2722 {
2723  guint8 MA_NUMBER;
2724 
2725  guint8 Count_Carriers;
2726  Hopping_PCCCH_Carriers_t Carriers[10];/* MAX_PCCCH but 10 is theoretical max. */
2727 } HoppingPCCCH_t;
2728 
2729 typedef struct
2730 {
2731  guint8 TSC;
2732 
2733  guint8 UnionType;
2734  union
2735  {
2736  NonHoppingPCCCH_t NonHopping;
2737  HoppingPCCCH_t Hopping;
2738  } u;
2740 
2741 typedef struct
2742 {
2743  LAI_t LAI;
2744  guint8 RAC;
2745  CellId_t Cell_Identity;
2747 
2748 typedef struct
2749 {
2750  guint8 ATT;
2751 
2752  guint8 Exist_T3212;
2753  guint8 T3212;
2754 
2755  guint8 NECI;
2756  guint8 PWRC;
2757  guint8 DTX;
2758  guint8 RADIO_LINK_TIMEOUT;
2759  guint8 BS_AG_BLKS_RES;
2760  guint8 CCCH_CONF;
2761  guint8 BS_PA_MFRMS;
2762  guint8 MAX_RETRANS;
2763  guint8 TX_INTEGER;
2764  guint8 EC;
2765  guint8 MS_TXPWR_MAX_CCCH;
2766 
2767  guint8 Exist_Extension_Bits;
2768  Extension_Bits_t Extension_Bits;
2770 
2771 typedef struct
2772 {
2773  guint8 MESSAGE_TYPE;
2774  guint8 PAGE_MODE;
2775  guint8 CHANGE_MARK;
2776  guint8 INDEX;
2777  guint8 COUNT;
2778 
2779  guint8 Exist_Cell_Identification;
2780  Cell_Identification_t Cell_Identification;
2781 
2782  guint8 Exist_Non_GPRS_Cell_Options;
2783  Non_GPRS_Cell_Options_t Non_GPRS_Cell_Options;
2784 
2785  guint8 Count_Reference_Frequency;
2786  Reference_Frequency_t Reference_Frequency[MAX_RFLS];
2787 
2788  Cell_Allocation_t Cell_Allocation;
2789 
2790  guint8 Count_GPRS_MA;
2791  PSI2_MA_t GPRS_MA[MAX_MA_LISTS_IN_PSI2];
2792 
2793  guint8 Count_PCCCH_Description;
2794  PCCCH_Description_t PCCCH_Description[7];/* MAX_PCCCH but it is impossible that more than 7 can be decoded */
2795 } PSI2_t;
2796 
2797 /* < PSI3 message content > */
2798 typedef struct
2799 {
2800  guint8 PRIORITY_CLASS;
2801  guint8 HCS_THR;
2802 } HCS_t;
2803 
2804 typedef struct
2805 {
2806  guint8 CELL_BAR_ACCESS_2;
2807  guint8 EXC_ACC;
2808  guint8 GPRS_RXLEV_ACCESS_MIN;
2809  guint8 GPRS_MS_TXPWR_MAX_CCH;
2810 
2811  guint8 Exist_HCS;
2812  HCS_t HCS;
2813  guint8 MULTIBAND_REPORTING;
2815 
2816 typedef struct
2817 {
2818  guint8 GPRS_CELL_RESELECT_HYSTERESIS;
2819  guint8 C31_HYST;
2820  guint8 C32_QUAL;
2821  guint8 RANDOM_ACCESS_RETRY;
2822 
2823  guint8 Exist_T_RESEL;
2824  guint8 T_RESEL;
2825 
2826  guint8 Exist_RA_RESELECT_HYSTERESIS;
2827  guint8 RA_RESELECT_HYSTERESIS;
2828 } Gen_Cell_Sel_t;
2829 
2830 typedef struct
2831 {
2832  guint8 PBCCH_LOCATION;
2833  guint8 PSI1_REPEAT_PERIOD;
2835 
2836 typedef struct
2837 {
2838  guint8 UnionType;
2839  union
2840  {
2841  guint8 SI13_LOCATION;
2842  Location_Repeat_t lr;
2843  } u;
2845 
2846 typedef struct
2847 {
2848  guint8 BSIC;
2849  guint8 CELL_BAR_ACCESS_2;
2850  guint8 EXC_ACC;
2851  guint8 SAME_RA_AS_SERVING_CELL;
2852 
2853  guint8 Exist_RXLEV_and_TXPWR;
2854  guint8 GPRS_RXLEV_ACCESS_MIN;
2855  guint8 GPRS_MS_TXPWR_MAX_CCH;
2856 
2857  guint8 Exist_OFFSET_and_TIME;
2858  guint8 GPRS_TEMPORARY_OFFSET;
2859  guint8 GPRS_PENALTY_TIME;
2860 
2861  guint8 Exist_GPRS_RESELECT_OFFSET;
2862  guint8 GPRS_RESELECT_OFFSET;
2863 
2864  guint8 Exist_HCS;
2865  HCS_t HCS;
2866 
2867  guint8 Exist_SI13_PBCCH_Location;
2868  SI13_PBCCH_Location_t SI13_PBCCH_Location;
2870 
2871 /* Neighbour cell list as used in PSI3 and PSI3bis */
2872 typedef struct
2873 {
2874  guint8 FREQ_DIFF_LENGTH;
2875  guint8 FREQUENCY_DIFF;
2876 
2877  Cell_Selection_t Cell_SelectionParams;
2879 
2880 typedef struct
2881 {
2882  guint16 START_FREQUENCY;
2883  Cell_Selection_t Cell_Selection;
2884  guint8 NR_OF_REMAINING_CELLS;
2885  guint8 FREQ_DIFF_LENGTH;
2886 
2887  Cell_Selection_Params_With_FreqDiff_t Cell_Selection_Params_With_FreqDiff[16];
2889 
2890 typedef struct
2891 {
2892  guint8 Count;
2893  NeighbourCellParameters_t Parameters[32];
2895 
2896 /* < PSI3 message content > */
2897 
2898 typedef struct
2899 {
2900  guint8 bsic;
2901  guint8 CELL_BAR_ACCESS_2;
2902  guint8 EXC_ACC;
2903  guint8 SAME_RA_AS_SERVING_CELL;
2904  guint8 Exist_GPRS_RXLEV_ACCESS_MIN;
2905  guint8 GPRS_RXLEV_ACCESS_MIN;
2906  guint8 GPRS_MS_TXPWR_MAX_CCH;
2907  guint8 Exist_GPRS_TEMPORARY_OFFSET;
2908  guint8 GPRS_TEMPORARY_OFFSET;
2909  guint8 GPRS_PENALTY_TIME;
2910  guint8 Exist_GPRS_RESELECT_OFFSET;
2911  guint8 GPRS_RESELECT_OFFSET;
2912  guint8 Exist_Hcs_Parm;
2913  HCS_t HCS_Param;
2914  guint8 Exist_TIME_GROUP;
2915  guint8 TIME_GROUP;
2916  guint8 Exist_GUAR_CONSTANT_PWR_BLKS;
2917  guint8 GUAR_CONSTANT_PWR_BLKS;
2919 
2920 typedef struct
2921 {
2922  guint8 FREQ_DIFF_LENGTH;
2923  guint16 FREQUENCY_DIFF;
2924  COMPACT_Cell_Sel_t COMPACT_Cell_Sel_Remain_Cells;
2926 
2927 typedef struct
2928 {
2929  guint16 START_FREQUENCY;
2930  COMPACT_Cell_Sel_t COMPACT_Cell_Sel;
2931  guint8 NR_OF_REMAINING_CELLS;
2932  guint8 FREQ_DIFF_LENGTH;
2933  COMPACT_Neighbour_Cell_Param_Remaining_t COMPACT_Neighbour_Cell_Param_Remaining[16];
2935 
2936 typedef struct
2937 {
2938  Cell_Identification_t Cell_Identification;
2939  guint8 COMPACT_Neighbour_Cell_Param_Count;
2940  COMPACT_Neighbour_Cell_Param_t COMPACT_Neighbour_Cell_Param[8];
2941 } COMPACT_Info_t;
2942 
2943 typedef struct
2944 {
2945  guint8 Exist_CCN_Support_Desc;
2946  CCN_Support_Description_t CCN_Support_Desc;
2948 
2949 typedef struct
2950 {
2951  guint8 Exist_COMPACT_Info;
2952  COMPACT_Info_t COMPACT_Info;
2953  guint8 Exist_AdditionR4;
2954  PSI3_AdditionR4_t AdditionR4;
2956 
2957 typedef struct
2958 {
2959  LSA_ID_Info_t Scell_LSA_ID_Info;
2960  guint8 Exist_LSA_Parameters;
2961  LSA_Parameters_t LSA_Parameters;
2962  guint8 Exist_AdditionR99;
2963  PSI3_AdditionR99_t AdditionR99;
2965 
2966 typedef struct
2967 {
2968  guint8 MESSAGE_TYPE;
2969  guint8 PAGE_MODE;
2970  guint8 CHANGE_MARK;
2971  guint8 BIS_COUNT;
2972 
2973  Serving_Cell_params_t Serving_Cell_params;
2974 
2975  Gen_Cell_Sel_t General_Cell_Selection;
2976  NeighbourCellList_t NeighbourCellList;
2977 
2978  guint8 Exist_AdditionR98;
2979  PSI3_AdditionR98_t AdditionR98;
2980 } PSI3_t;
2981 
2982 /* < PSI3_BIS message content > */
2983 typedef struct
2984 {
2985  guint8 MESSAGE_TYPE;
2986  guint8 PAGE_MODE;
2987  guint8 CHANGE_MARK;
2988  guint8 BIS_INDEX;
2989  guint8 BIS_COUNT;
2990 
2991  NeighbourCellList_t NeighbourCellList;
2992 } PSI3_BIS_t;
2993 
2994 /* < PSI4 message content > */
2995 typedef struct
2996 {
2997  guint8 MA_NUMBER;
2998  guint8 MAIO;
2999 } h_CG_t;
3000 
3001 typedef struct
3002 {
3003  guint8 UnionType;
3004  union
3005  {
3006  guint16 ARFCN;
3007  h_CG_t h_CG;
3008  } u;
3009 
3010  guint8 TIMESLOT_ALLOCATION;
3011 } Channel_Group_t;
3012 
3013 typedef struct
3014 {
3015  /* Channel_Group_t Channel_Group
3016  * At least one
3017  * the first one is unpacked in the index
3018  */
3019  guint8 Count_Channel_Group;
3020  Channel_Group_t Channel_Group[8];
3021 } Channel_List_t;
3022 
3023 typedef struct
3024 {
3025  guint8 MESSAGE_TYPE;
3026 
3027  guint8 PAGE_MODE;
3028  guint8 CHANGE_MARK;
3029  guint8 INDEX;
3030  guint8 COUNT;
3031 
3032  Channel_List_t Channel_List;
3033 
3034 } PSI4_t;
3035 
3036 
3037 /* < PSI5 message content > */
3038 typedef struct
3039 {
3040  guint8 existRepParamsFDD;
3041  guint8 RepQuantFDD;
3042  guint8 MultiratReportingFDD;
3043 
3044  guint8 existReportingParamsFDD;
3045  guint8 ReportingOffsetFDD;
3046  guint8 ReportingThresholdFDD;
3047 
3048  guint8 existMultiratReportingTDD;
3049  guint8 MultiratReportingTDD;
3050 
3051  guint8 existOffsetThresholdTDD;
3052  guint8 ReportingOffsetTDD;
3053  guint8 ReportingThresholdTDD;
3055 
3056 typedef struct
3057 {
3058  guint8 REPORT_TYPE;
3059  guint8 REPORTING_RATE;
3060  guint8 INVALID_BSIC_REPORTING;
3061  guint8 Exist_NCC_PERMITTED;
3062  guint8 NCC_PERMITTED;
3063 
3064  gboolean Exist_GPRSMeasurementParams;
3065  MeasurementParams_t GPRSMeasurementParams;
3066  gboolean Exist_GPRSMeasurementParams3G;
3067  GPRSMeasurementParams3G_PSI5_t GPRSMeasurementParams3G;
3069 
3070 typedef struct
3071 {
3072  guint8 Exist_OffsetThreshold_700;
3073  OffsetThreshold_t OffsetThreshold_700;
3074  guint8 Exist_OffsetThreshold_810;
3075  OffsetThreshold_t OffsetThreshold_810;
3077 
3078 typedef struct
3079 {
3080  guint8 Exist_GPRS_AdditionalMeasurementParams3G;
3081  GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
3082  guint8 Exist_AdditionsR7;
3083  PSI5_AdditionsR7 AdditionsR7;
3085 
3086 typedef struct
3087 {
3088  guint8 Exist_ENH_Reporting_Param;
3089  ENH_Reporting_Parameters_t ENH_Reporting_Param;
3090  guint8 Exist_AdditionsR5;
3091  PSI5_AdditionsR5 AdditionisR5;
3093 
3094 typedef struct
3095 {
3096  guint8 MESSAGE_TYPE;
3097 
3098  guint8 PAGE_MODE;
3099  guint8 CHANGE_MARK;
3100  guint8 INDEX;
3101  guint8 COUNT;
3102 
3103  guint8 Eixst_NC_Meas_Param;
3104  NC_Measurement_Parameters_t NC_Meas_Param;
3105  guint8 Exist_AdditionsR99;
3106  PSI5_AdditionsR99 AdditionsR99;
3107 } PSI5_t;
3108 
3109 
3110 
3111 
3112 /* < PSI13 message content >
3113  * Combined with SI13
3114  */
3115 typedef struct
3116 {
3117  guint8 Exist_LB_MS_TXPWR_MAX_CCH;
3118  guint8 LB_MS_TXPWR_MAX_CCH;
3119  guint8 SI2n_SUPPORT;
3121 
3123 
3124 typedef struct
3125 {
3126  guint8 SI_STATUS_IND;
3127  guint8 Exist_AdditionsR6;
3128  PSI13_AdditionsR6 AdditionsR6;
3130 
3132 
3133 typedef struct
3134 {
3135  guint8 SGSNR;
3136  gboolean Exist_AdditionsR4;
3137  PSI13_AdditionsR4 AdditionsR4;
3139 
3141 
3142 typedef struct
3143 {
3144  guint8 Exist;
3145  guint8 MESSAGE_TYPE;
3146 
3147  guint8 PAGE_MODE;
3148  guint8 BCCH_CHANGE_MARK;
3149  guint8 SI_CHANGE_FIELD;
3150 
3151  guint8 Exist_MA;
3152  guint8 SI13_CHANGE_MARK;
3153  GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
3154 
3155  guint8 UnionType;
3156  union
3157  {
3158  PBCCH_Not_present_t PBCCH_Not_present;
3159  PBCCH_present_t PBCCH_present;
3160  } u;
3161 
3162  gboolean Exist_AdditionsR99;
3163  PSI13_AdditionR99 AdditionsR99;
3164 } PSI13_t;
3165 
3166 /* SI_13_t is combined in the PSI13 structure */
3167 typedef PSI13_t SI_13_t;
3168 
3169 /* < Packet PRACH Parameters message content > */
3170 typedef struct
3171 {
3172  guint8 MESSAGE_TYPE;
3173  guint8 PAGE_MODE;
3174 
3175 
3176  PRACH_Control_t PRACH_Control;
3178 
3179 /* < Packet Access Reject message content > */
3180 typedef struct
3181 {
3182  guint8 UnionType;
3183  union
3184  {
3185  guint32 TLLI;
3186  Packet_Request_Reference_t Packet_Request_Reference;
3187  Global_TFI_t Global_TFI;
3188  } u;
3189 } RejectID_t;
3190 
3191 typedef struct
3192 {
3193  RejectID_t ID;
3194 
3195  guint8 Exist_Wait;
3196  guint8 WAIT_INDICATION;
3197  guint8 WAIT_INDICATION_SIZE;
3198 } Reject_t;
3199 
3200 typedef struct
3201 {
3202  guint8 MESSAGE_TYPE;
3203  guint8 PAGE_MODE;
3204 
3205  guint8 IndexToOur;
3206  guint8 Count_Reject;
3207  Reject_t Reject[5];
3209 
3210 /* < Packet Cell Change Order message content > */
3211 typedef struct
3212 {
3213  guint8 CELL_BAR_ACCESS_2;
3214  guint8 EXC_ACC;
3215  guint8 SAME_RA_AS_SERVING_CELL;
3216 
3217  guint8 Exist_RXLEV_and_TXPWR;
3218  guint8 GPRS_RXLEV_ACCESS_MIN;
3219  guint8 GPRS_MS_TXPWR_MAX_CCH;
3220 
3221  guint8 Exist_OFFSET_and_TIME;
3222  guint8 GPRS_TEMPORARY_OFFSET;
3223  guint8 GPRS_PENALTY_TIME;
3224 
3225  guint8 Exist_GPRS_RESELECT_OFFSET;
3226  guint8 GPRS_RESELECT_OFFSET;
3227 
3228  guint8 Exist_HCS;
3229  HCS_t HCS;
3230 
3231  guint8 Exist_SI13_PBCCH_Location;
3232  SI13_PBCCH_Location_t SI13_PBCCH_Location;
3234 
3235 typedef struct
3236 {
3237  guint8 FREQUENCY_DIFF;
3238  guint8 BSIC;
3239  Cell_Selection_t Cell_Selection;
3241 
3242 typedef struct
3243 {
3244  guint8 FREQ_DIFF_LENGTH;
3245  guint8 FREQUENCY_DIFF;
3246  guint8 BSIC;
3247 
3248  gboolean Exist_CellSelectionParams;
3249  Cell_Selection_2_t CellSelectionParams;
3251 
3252 typedef struct
3253 {
3254  guint16 START_FREQUENCY;
3255  guint8 BSIC;
3256 
3257  guint8 Exist_Cell_Selection;
3258  Cell_Selection_2_t Cell_Selection;
3259 
3260  guint8 NR_OF_FREQUENCIES;
3261  guint8 FREQ_DIFF_LENGTH;
3262 
3263 
3264  CellSelectionParamsWithFreqDiff_t CellSelectionParamsWithFreqDiff[32];
3266 
3267 typedef struct
3268 {
3269  guint8 REMOVED_FREQ_INDEX;
3271 
3272 typedef struct
3273 {
3274  guint8 Exist_REMOVED_FREQ;
3275  guint8 NR_OF_REMOVED_FREQ;
3276  Removed_Freq_Index_t Removed_Freq_Index[32];
3277 
3278  guint8 Count_Add_Frequency;
3279  Add_Frequency_list_t Add_Frequency[32];
3281 
3282 
3283 typedef struct
3284 {
3285  guint8 NETWORK_CONTROL_ORDER;
3286 
3287  guint8 Exist_NC;
3288  guint8 NC_NON_DRX_PERIOD;
3289  guint8 NC_REPORTING_PERIOD_I;
3290  guint8 NC_REPORTING_PERIOD_T;
3291 
3292  guint8 Exist_NC_FREQUENCY_LIST;
3293  NC_Frequency_list_t NC_Frequency_list;
3295 
3296 
3297 typedef struct
3298 {
3299  guint8 BA_IND;
3300  guint8 BA_IND_3G;
3301 } BA_IND_t;
3302 
3303 typedef struct
3304 {
3305  guint8 BA_USED;
3306  guint8 BA_USED_3G;
3307 } BA_USED_t;
3308 
3309 typedef struct
3310 {
3311  guint8 RXLEV_SERVING_CELL;
3313 
3314 typedef struct
3315 {
3316  guint8 FREQUENCY_N;
3317  guint8 Exist_BSIC_N;
3318  guint8 BSIC_N;
3319  guint8 RXLEV_N;
3321 
3322 typedef struct
3323 {
3324  guint8 BCCH_FREQ_N;
3325  guint8 BSIC_N;
3326  guint8 RXLEV_N;
3328 
3329 typedef struct
3330 {
3331  guint8 Exist_REPORTING_QUANTITY;
3332  guint8 REPORTING_QUANTITY;
3334 
3335 typedef struct
3336 {
3337  guint8 NC_MODE;
3338  Serving_Cell_Data_t Serving_Cell_Data;
3339 
3340  guint8 NUMBER_OF_NC_MEASUREMENTS;
3341  NC_Measurements_t NC_Measurements[6]; /* NC_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3342  Max 7 NC Measurements in one PACKET MEASUREMENT REPORT,
3343  but only 6 cells are updated in PACKET IDLE. */
3345 
3346 typedef struct
3347 {
3348  guint8 EXT_REPORTING_TYPE;
3349 
3350  guint8 Exist_I_LEVEL;
3351  struct
3352  {
3353  guint8 Exist;
3354  guint8 I_LEVEL;
3355  } Slot[8];
3356 
3357  guint8 NUMBER_OF_EXT_MEASUREMENTS;
3358  NC_Measurements_t EXT_Measurements[9]; /* EXT_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3359  Max 9 Ext Measurements in one PACKET MEASUREMENT REPORT */
3361 
3362 typedef struct
3363 {
3364  guint8 CELL_LIST_INDEX_3G;
3365  guint8 REPORTING_QUANTITY;
3367 
3368 typedef struct
3369 {
3370  guint32 UTRAN_CGI;
3371  guint8 Exist_PLMN_ID;
3372  PLMN_t Plmn_ID;
3373  guint32 CSG_ID;
3374  gboolean Access_Mode;
3375  guint8 REPORTING_QUANTITY;
3377 
3378 typedef struct
3379 {
3380  guint32 EUTRAN_CGI;
3381  guint16 Tracking_Area_Code;
3382  guint8 Exist_PLMN_ID;
3383  PLMN_t Plmn_ID;
3384  guint32 CSG_ID;
3385  gboolean Access_Mode;
3386  guint8 REPORTING_QUANTITY;
3388 
3389 typedef struct
3390 {
3391  gboolean Exist_UTRAN_CSG_Meas_Rpt;
3392  UTRAN_CSG_Measurement_Report_t UTRAN_CSG_Meas_Rpt;
3393  gboolean Exist_EUTRAN_CSG_Meas_Rpt;
3394  EUTRAN_CSG_Measurement_Report_t EUTRAN_CSG_Meas_Rpt;
3396 
3397 typedef struct
3398 {
3399  guint8 EUTRAN_FREQUENCY_INDEX;
3400  guint16 CELL_IDENTITY;
3401  guint8 REPORTING_QUANTITY;
3403 
3404 typedef struct
3405 {
3406  guint8 N_EUTRAN;
3409 
3410 typedef struct
3411 {
3412  gboolean Exist_EUTRAN_Meas_Rpt;
3413  EUTRAN_Measurement_Report_t EUTRAN_Meas_Rpt;
3414  gboolean Exist_AdditionsR9;
3415  PMR_AdditionsR9_t AdditionsR9;
3417 
3418 typedef struct
3419 {
3420  gboolean Exist_GRNTI;
3421  guint8 GRNTI;
3422  gboolean Exist_AdditionsR8;
3423  PMR_AdditionsR8_t AdditionsR8;
3425 
3426 typedef struct
3427 {
3428  gboolean Exist_Info3G;
3429  guint8 UnionType;
3430  union
3431  {
3432  BA_USED_t BA_USED;
3433  guint8 PSI3_CHANGE_MARK;
3434  } u;
3435  guint8 PMO_USED;
3436 
3437  /* N_3G bit(3): max value 7
3438  * Report part (csn): {<3G_CELL_LIST_INDEX:bit(7)><REPORTING_QUANTITY:bit(6)>}*(val(N_3G + 1))
3439  * Max 6 3G measurement structs in one PMR
3440  */
3441  gboolean Exist_MeasurementReport3G;
3442  guint8 N_3G;
3443  Measurements_3G_t Measurements_3G[6];
3444 
3445  gboolean Exist_AdditionsR5;
3446  PMR_AdditionsR5_t AdditionsR5;
3448 
3449 typedef struct
3450 {
3451  guint8 MESSAGE_TYPE;
3452  guint8 PayloadType;
3453  guint8 spare;
3454  guint8 R;
3455 
3456  guint32 TLLI;
3457  guint8 Exist_PSI5_CHANGE_MARK;
3458  guint8 PSI5_CHANGE_MARK;
3459 
3460  guint8 UnionType;
3461  union
3462  {
3463  NC_Measurement_Report_t NC_Measurement_Report;
3464  EXT_Measurement_Report_t EXT_Measurement_Report;
3465  } u;
3466 
3467  gboolean Exist_AdditionsR99;
3468  PMR_AdditionsR99_t AdditionsR99;
3470 
3471 #define INV_BSIC_LIST_LEN (16)
3472 
3473 #define REPORT_QUANTITY_LIST_LEN (96) /* Specification specified up to 96 */
3474 
3475 typedef struct
3476 {
3477  guint8 NC_MODE;
3478  guint8 UnionType;
3479  union
3480  {
3481  BA_USED_t BA_USED;
3482  guint8 PSI3_CHANGE_MARK;
3483  } u;
3484 
3485  guint8 PMO_USED;
3486  guint8 BSIC_Seen;
3487  guint8 SCALE;
3488 
3489  guint8 Exist_Serving_Cell_Data;
3490  Serving_Cell_Data_t Serving_Cell_Data;
3491 
3492  guint8 Count_RepeatedInvalid_BSIC_Info;
3493  RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
3494 
3495  guint8 Exist_ReportBitmap;
3496  guint8 Count_REPORTING_QUANTITY_Instances;
3497  REPORTING_QUANTITY_Instance_t REPORTING_QUANTITY_Instances[REPORT_QUANTITY_LIST_LEN];
3498 
3500 
3501 typedef struct
3502 {
3503  guint8 Exist_UTRAN_CSG_Target_Cell;
3504  UTRAN_CSG_Target_Cell_t UTRAN_CSG_Target_Cell;
3505  guint8 Exist_EUTRAN_CSG_Target_Cell;
3506  EUTRAN_CSG_Target_Cell_t EUTRAN_CSG_Target_Cell;
3508 
3509 typedef struct
3510 {
3511  gboolean Exist_REPORTING_QUANTITY;
3512  guint8 REPORTING_QUANTITY;
3514 
3515 typedef struct
3516 {
3517  guint8 BITMAP_LENGTH;
3518  Bitmap_Report_Quantity_t Bitmap_Report_Quantity[128];
3519  gboolean Exist_EUTRAN_Meas_Rpt;
3520  EUTRAN_Measurement_Report_t EUTRAN_Meas_Rpt;
3521  gboolean Exist_AdditionsR9;
3522  PEMR_AdditionsR9_t AdditionsR9;
3524 
3525 typedef struct
3526 {
3527  gboolean Exist_GRNTI_Ext;
3528  guint8 GRNTI_Ext;
3529  gboolean Exist_AdditionsR8;
3530  PEMR_AdditionsR8_t AdditionsR8;
3532 
3533 typedef struct
3534 {
3535  guint8 MESSAGE_TYPE;
3536  guint8 PayloadType;
3537  guint8 spare;
3538  guint8 R;
3539 
3540  guint32 TLLI;
3541 
3542  ENH_NC_Measurement_Report_t Measurements;
3543 
3544  gboolean Exist_AdditionsR5;
3545  PEMR_AdditionsR5_t AdditionsR5;
3547 
3548 typedef struct
3549 {
3550  guint8 RXLEV_SERVING_CELL;
3551 
3552  guint8 NUMBER_OF_NC_MEASUREMENTS;
3553  NC_Measurements_t NC_Measurements[6]; /* NC_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3554  Max 7 NC Measurements in one PACKET MEASUREMENT REPORT,
3555  but only 6 cells are updated in PACKET IDLE. */
3557 
3558 typedef struct
3559 {
3560  guint16 ARFCN;
3561  guint8 BSIC;
3563 
3564 typedef struct
3565 {
3566  guint16 FDD_ARFCN;
3567  guint8 Exist_Bandwith_FDD;
3568  guint8 BANDWITH_FDD;
3569  guint16 SCRAMBLING_CODE;
3571 
3572 typedef struct
3573 {
3574  guint16 TDD_ARFCN;
3575  guint8 Exist_Bandwith_TDD;
3576  guint8 BANDWITH_TDD;
3577  guint8 CELL_PARAMETER;
3578  guint8 Sync_Case_TSTD;
3580 
3581 typedef struct
3582 {
3583  guint8 Exist_FDD_Description;
3584  FDD_Target_Cell_Notif_t FDD_Target_Cell_Notif;
3585  guint8 Exist_TDD_Description;
3586  TDD_Target_Cell_Notif_t TDD_Target_Cell;
3587  guint8 REPORTING_QUANTITY;
3589 
3590 typedef struct
3591 {
3592  guint16 EARFCN;
3593  guint8 Exist_Measurement_Bandwidth;
3594  guint8 Measurement_Bandwidth;
3595  guint16 Physical_Layer_Cell_Identity;
3596  guint8 Reporting_Quantity;
3598 
3599 typedef struct
3600 {
3601  guint8 EUTRAN_FREQUENCY_INDEX;
3602  guint16 CELL_IDENTITY;
3603  guint8 REPORTING_QUANTITY;
3605 
3606 typedef struct
3607 {
3608  gboolean ThreeG_BA_USED;
3609  guint8 N_EUTRAN;
3610  Eutran_Ccn_Measurement_Report_Cell_t Eutran_Ccn_Measurement_Report_Cell[4];
3612 
3613 typedef struct
3614 {
3615  guint8 Exist_Arfcn;
3616  guint16 Arfcn;
3617  guint8 bsic;
3618  guint8 Exist_3G_Target_Cell;
3619  Target_Cell_3G_Notif_t Target_Cell_3G_Notif;
3620  guint8 Exist_Eutran_Target_Cell;
3621  Target_EUTRAN_Cell_Notif_t Target_EUTRAN_Cell;
3622  guint8 Exist_Eutran_Ccn_Measurement_Report;
3623  Eutran_Ccn_Measurement_Report_t Eutran_Ccn_Measurement_Report;
3625 
3626 typedef struct
3627 {
3628  guint8 UnionType;
3629  union
3630  {
3631  UTRAN_CSG_Measurement_Report_t UTRAN_CSG_Measurement_Report;
3632  EUTRAN_CSG_Measurement_Report_t EUTRAN_CSG_Measurement_Report;
3633  } u;
3634  guint8 Exist_Eutran_Ccn_Measurement_Report;
3635  Eutran_Ccn_Measurement_Report_t Eutran_Ccn_Measurement_Report;
3637 
3638 typedef struct
3639 {
3640  guint8 UnionType;
3641  union
3642  {
3643  Target_Cell_4G_Notif_t Target_Cell_4G_Notif;
3644  Target_Cell_CSG_Notif_t Target_Cell_CSG_Notif;
3645  } u;
3647 
3648 typedef struct
3649 {
3650  guint8 UnionType;
3651  union
3652  {
3653  Target_Cell_3G_Notif_t Target_Cell_3G_Notif;
3654  Target_Other_RAT_2_Notif_t Target_Other_RAT_2_Notif;
3655  } u;
3657 
3658 typedef struct
3659 {
3660  guint8 UnionType;
3661  union
3662  {
3663  Target_Cell_GSM_Notif_t Target_Cell_GSM_Notif;
3664  Target_Other_RAT_Notif_t Target_Other_RAT_Notif;
3665  } u;
3666 } Target_Cell_t;
3667 
3668 typedef struct
3669 {
3670  guint8 Exist_BA_USED_3G;
3671  guint8 BA_USED_3G;
3672 
3673  guint8 N_3G;
3674  Measurements_3G_t Measurements_3G[6];
3676 
3677 /* < Packet Cell Change Notification message contents > */
3678 typedef struct
3679 {
3680  guint8 MESSAGE_TYPE;
3681  guint8 PayloadType;
3682  guint8 spare;
3683  guint8 R;
3684 
3685  Global_TFI_t Global_TFI;
3686 
3687  Target_Cell_t Target_Cell;
3688 
3689  guint8 UnionType;
3690  union
3691  {
3692  guint8 BA_IND;
3693  guint8 PSI3_CHANGE_MARK;
3694  } u;
3695  guint8 PMO_USED;
3696  guint8 PCCN_SENDING;
3697  CCN_Measurement_Report_t CCN_Measurement_Report;
3698 
3699  gboolean Exist_AdditionsR6;
3700  PCCN_AdditionsR6_t AdditionsR6;
3702 
3703 /* < Packet Cell Change Order message contents > */
3704 
3705 
3706 typedef struct
3707 {
3708  guint8 FrequencyScrolling;
3709  guint8 BSIC;
3710 } BSICDesc_t;
3711 
3712 
3713 #define MAX_BSIC_DESCS (19) /* Due to message size (23 bytes) and header etc,
3714  * there cannot be more than 19 DESCS.
3715  */
3716 
3717 typedef struct
3718 {
3719  gboolean Exist_IndexStartBA;
3720  guint8 IndexStartBA;
3721  guint8 BSIC;
3722  guint8 NumRemainingBSICs;
3723  BSICDesc_t BSICDesc[MAX_BSIC_DESCS];
3724 } BSICList_t;
3725 
3726 typedef BSICList_t GPRSBSICList_t;
3727 
3728 #define MAX_RTD_VALUES (6)
3729 
3730 typedef struct
3731 {
3732  guint8 NumRTDValues;
3733  guint16 RTD[MAX_RTD_VALUES];
3735 
3736 typedef struct
3737 {
3738  gboolean Exist_StartValue;
3739  guint8 StartValue;
3741 
3742 #define MAX_RTD_FREQS (32)
3743 
3744 typedef struct
3745 {
3746  BAIndexStartRTD_t BAIndexStart;
3747  guint8 NumFreqs;
3748  RTDValues_t RTD_s[MAX_RTD_FREQS];
3750 
3751 typedef struct
3752 {
3753  gboolean Exist_ListRTD6;
3754  RTDList_t ListRTD6;
3755 
3756  gboolean Exist_ListRTD12;
3757  RTDList_t ListRTD12;
3758 } RealTimeDiffs_t;
3759 
3760 
3762 
3763 typedef struct {
3764  gboolean existMultiratReporting;
3765  guint8 MultiratReporting;
3766 
3767  gboolean existOffsetThreshold;
3768  OffsetThreshold_t OffsetThreshold;
3770 
3771 typedef struct
3772 {
3773  guint8 Qsearch_P;
3774  guint8 SearchPrio3G;
3775 
3776  gboolean existRepParamsFDD;
3777  guint8 RepQuantFDD;
3778  guint8 MultiratReportingFDD;
3779 
3780  gboolean existOffsetThreshold;
3781  OffsetThreshold_t OffsetThreshold;
3782 
3783  MultiratParams3G_t ParamsTDD;
3784  MultiratParams3G_t ParamsCDMA2000;
3787 
3788 typedef struct
3789 {
3790  guint8 Qsearch_P;
3791  guint8 SearchPrio3G;
3792 
3793  gboolean existRepParamsFDD;
3794  guint8 RepQuantFDD;
3795  guint8 MultiratReportingFDD;
3796 
3797  gboolean existOffsetThreshold;
3798  OffsetThreshold_t OffsetThreshold;
3799 
3800  MultiratParams3G_t ParamsTDD;
3803 
3804 typedef struct
3805 {
3806  guint8 Qsearch_p;
3807  guint8 SearchPrio3G;
3808 
3809  guint8 existRepParamsFDD;
3810  guint8 RepQuantFDD;
3811  guint8 MultiratReportingFDD;
3812 
3813  guint8 existReportingParamsFDD;
3814  guint8 ReportingOffsetFDD;
3815  guint8 ReportingThresholdFDD;
3816 
3817  guint8 existMultiratReportingTDD;
3818  guint8 MultiratReportingTDD;
3819 
3820  guint8 existOffsetThresholdTDD;
3821  guint8 ReportingOffsetTDD;
3822  guint8 ReportingThresholdTDD;
3824 
3825 typedef struct
3826 {
3827  guint8 REMOVED_3GCELL_INDEX;
3828  guint8 CELL_DIFF_LENGTH_3G;
3829  guint8 CELL_DIFF_3G;
3831 
3832 typedef struct
3833 {
3834  guint8 N2_Count;
3835  N2_t N2s[32];
3837 
3838 typedef struct
3839 {
3840  guint8 N1_Count;
3841  N1_t N1s[4];
3843 
3844 typedef struct
3845 {
3846  guint8 Complete_This;
3848 
3849 typedef struct {
3850  guint8 ZERO;
3851  guint16 UARFCN;
3852  guint8 Indic0;
3853  guint8 NrOfCells;
3854  guint8 BitsInCellInfo;
3855  guint8 CellInfo[16]; /* bitmap compressed according to "Range 1024" algorithm (04.18/9.1.54) */
3857 
3858 typedef struct {
3859  gboolean existBandwidth;
3860  guint8 Bandwidth;
3861  guint8 NrOfFrequencies;
3862  UTRAN_FDD_NeighbourCells_t CellParams[8];
3864 
3865 typedef struct {
3866  guint8 ZERO;
3867  guint16 UARFCN;
3868  guint8 Indic0;
3869  guint8 NrOfCells;
3870  guint8 BitsInCellInfo;
3871  guint8 CellInfo[16]; /* bitmap compressed according to "Range 512" algorithm */
3873 
3874 typedef struct {
3875  gboolean existBandwidth;
3876  guint8 Bandwidth;
3877  guint8 NrOfFrequencies;
3878  UTRAN_TDD_NeighbourCells_t CellParams[8];
3880 
3881 typedef struct
3882 {
3883  guint8 Exist_Index_Start_3G;
3884  guint8 Index_Start_3G;
3885  guint8 Exist_Absolute_Index_Start_EMR;
3886  guint8 Absolute_Index_Start_EMR;
3887  guint8 Exist_UTRAN_FDD_Description;
3888  UTRAN_FDD_Description_t UTRAN_FDD_Description;
3889  guint8 Exist_UTRAN_TDD_Description;
3890  UTRAN_TDD_Description_t UTRAN_TDD_Description;
3891  guint8 Exist_CDMA2000_Description;
3892  CDMA2000_Description_t CDMA2000_Description;
3893  guint8 Exist_Removed3GCellDescription;
3894  Removed3GCellDescription_t Removed3GCellDescription;
3896 
3897 typedef struct
3898 {
3899  guint8 Exist_Index_Start_3G;
3900  guint8 Index_Start_3G;
3901  guint8 Exist_Absolute_Index_Start_EMR;
3902  guint8 Absolute_Index_Start_EMR;
3903  guint8 Exist_UTRAN_FDD_Description;
3904  UTRAN_FDD_Description_t UTRAN_FDD_Description;
3905  guint8 Exist_UTRAN_TDD_Description;
3906  UTRAN_TDD_Description_t UTRAN_TDD_Description;
3907  guint8 Exist_Removed3GCellDescription;
3908  Removed3GCellDescription_t Removed3GCellDescription;
3910 
3911 typedef struct
3912 {
3913  guint8 UnionType;
3914  union
3915  {
3916  BA_IND_t BA_IND;
3917  guint8 PSI3_CHANGE_MARK;
3918  } u;
3919 
3920  guint8 PMO_IND;
3921 
3922  guint8 REPORT_TYPE;
3923  guint8 REPORTING_RATE;
3924  guint8 INVALID_BSIC_REPORTING;
3925 
3926  gboolean Exist_NeighbourCellDescription3G;
3927  NeighbourCellDescription3G_PMO_t NeighbourCellDescription3G;
3928 
3929  gboolean Exist_GPRSReportPriority;
3930  GPRSReportPriority_t GPRSReportPriority;
3931 
3932  gboolean Exist_GPRSMeasurementParams;
3933  GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3934  gboolean Exist_GPRSMeasurementParams3G;
3935  ENH_GPRSMeasurementParams3G_PMO_t GPRSMeasurementParams3G;
3937 
3938 typedef struct
3939 {
3940  guint8 UnionType;
3941  union
3942  {
3943  BA_IND_t BA_IND;
3944  guint8 PSI3_CHANGE_MARK;
3945  } u;
3946 
3947  guint8 PMO_IND;
3948 
3949  guint8 REPORT_TYPE;
3950  guint8 REPORTING_RATE;
3951  guint8 INVALID_BSIC_REPORTING;
3952 
3953  gboolean Exist_NeighbourCellDescription3G;
3954  NeighbourCellDescription3G_PCCO_t NeighbourCellDescription3G;
3955 
3956  gboolean Exist_GPRSReportPriority;
3957  GPRSReportPriority_t GPRSReportPriority;
3958 
3959  gboolean Exist_GPRSMeasurementParams;
3960  GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3961  gboolean Exist_GPRSMeasurementParams3G;
3962  ENH_GPRSMeasurementParams3G_PCCO_t GPRSMeasurementParams3G;
3964 
3965 typedef struct
3966 {
3967  guint8 UnionType;
3968  union
3969  {
3970  Global_TFI_t Global_TFI;
3971  guint32 TLLI;
3972  } u;
3974 
3975 typedef struct
3976 {
3977  guint8 CELL_BAR_QUALIFY_3;
3978  guint8 Exist_SI13_Alt_PBCCH_Location;
3979  SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
3981 
3982 typedef struct
3983 {
3984  guint8 Exist_lu_ModeCellSelectionParams;
3985  lu_ModeCellSelectionParameters_t lu_ModeCellSelectionParameters;
3987 
3988 typedef struct
3989 {
3990  lu_ModeCellSelectionParams_t lu_ModeCellSelectionParameters;
3991  guint8 NR_OF_FREQUENCIES;
3992  lu_ModeCellSelectionParams_t lu_ModeCellSelectionParams[32];
3994 
3995 typedef struct
3996 {
3997  guint8 CELL_BAR_QUALIFY_3;
3998  guint8 SAME_RA_AS_SERVING_CELL;
3999 
4000  guint8 Exist_RXLEV_and_TXPWR;
4001  guint8 GPRS_RXLEV_ACCESS_MIN;
4002  guint8 GPRS_MS_TXPWR_MAX_CCH;
4003 
4004  guint8 Exist_OFFSET_and_TIME;
4005  guint8 GPRS_TEMPORARY_OFFSET;
4006  guint8 GPRS_PENALTY_TIME;
4007 
4008  guint8 Exist_GPRS_RESELECT_OFFSET;
4009  guint8 GPRS_RESELECT_OFFSET;
4010 
4011  guint8 Exist_HCS;
4012  HCS_t HCS;
4013 
4014  guint8 Exist_SI13_Alt_PBCCH_Location;
4015  SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
4017 
4018 typedef struct
4019 {
4020  guint8 FREQ_DIFF_LENGTH;
4021  guint8 FREQUENCY_DIFF;
4022  guint8 BSIC;
4023 
4024  gboolean Exist_lu_ModeOnlyCellSelectionParams;
4025  lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelectionParams;
4027 
4028 typedef struct
4029 {
4030  guint16 START_FREQUENCY;
4031  guint8 BSIC;
4032 
4033  guint8 Exist_lu_ModeCellSelection;
4034  lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelection;
4035 
4036  guint8 NR_OF_FREQUENCIES;
4037  guint8 FREQ_DIFF_LENGTH;
4038 
4039  lu_ModeOnlyCellSelectionParamsWithFreqDiff_t lu_ModeOnlyCellSelectionParamsWithFreqDiff[32];
4041 
4042 typedef struct
4043 {
4044  guint8 Count_Add_lu_ModeOnlyFrequencyList;
4045  Add_lu_ModeOnlyFrequencyList_t Add_lu_ModeOnlyFrequencyList[32];
4048 
4049 typedef struct
4050 {
4051  guint8 NumberOfFrequencyIndexes;
4052  guint8 UTRAN_FREQUENCY_INDEX_a[18];
4053 
4054  gboolean existUTRAN_PRIORITY;
4055  guint8 UTRAN_PRIORITY;
4056 
4057  guint8 THRESH_UTRAN_high;
4058 
4059  gboolean existTHRESH_UTRAN_low;
4060  guint8 THRESH_UTRAN_low;
4061 
4062  gboolean existUTRAN_QRXLEVMIN;
4063  guint8 UTRAN_QRXLEVMIN;
4065 
4066 typedef struct
4067 {
4068  gboolean existDEFAULT_UTRAN_Parameters;
4069  guint8 DEFAULT_UTRAN_PRIORITY;
4070  guint8 DEFAULT_THRESH_UTRAN;
4071  guint8 DEFAULT_UTRAN_QRXLEVMIN;
4072 
4073  guint8 NumberOfPriorityParameters;
4074  RepeatedUTRAN_PriorityParameters_t RepeatedUTRAN_PriorityParameters_a[8];
4076 
4077 typedef struct
4078 {
4079  gboolean existEUTRAN_FDD_REPORTING_THRESHOLD_OFFSET;
4080  guint8 EUTRAN_FDD_REPORTING_THRESHOLD;
4081  gboolean existEUTRAN_FDD_REPORTING_THRESHOLD_2;
4082  guint8 EUTRAN_FDD_REPORTING_THRESHOLD_2;
4083  gboolean existEUTRAN_FDD_REPORTING_OFFSET;
4084  guint8 EUTRAN_FDD_REPORTING_OFFSET;
4085 
4086  gboolean existEUTRAN_TDD_REPORTING_THRESHOLD_OFFSET;
4087  guint8 EUTRAN_TDD_REPORTING_THRESHOLD;
4088  gboolean existEUTRAN_TDD_REPORTING_THRESHOLD_2;
4089  guint8 EUTRAN_TDD_REPORTING_THRESHOLD_2;
4090  gboolean existEUTRAN_TDD_REPORTING_OFFSET;
4091  guint8 EUTRAN_TDD_REPORTING_OFFSET;
4093 
4094 typedef struct
4095 {
4096  guint8 Qsearch_P_EUTRAN;
4097  guint8 EUTRAN_REP_QUANT;
4098  guint8 EUTRAN_MULTIRAT_REPORTING;
4099  EUTRAN_REPORTING_THRESHOLD_OFFSET_t EUTRAN_REPORTING_THRESHOLD_OFFSET;
4101 
4102 typedef struct
4103 {
4104  guint16 EARFCN;
4105  gboolean existMeasurementBandwidth;
4106  guint8 MeasurementBandwidth;
4108 
4109 typedef struct
4110 {
4111  guint8 nbrOfEUTRAN_Cells;
4112  RepeatedEUTRAN_Cells_t EUTRAN_Cells_a[6];
4113 
4114  gboolean existEUTRAN_PRIORITY;
4115  guint8 EUTRAN_PRIORITY;
4116 
4117  guint8 THRESH_EUTRAN_high;
4118 
4119  gboolean existTHRESH_EUTRAN_low;
4120  guint8 THRESH_EUTRAN_low;
4121 
4122  gboolean existEUTRAN_QRXLEVMIN;
4123  guint8 EUTRAN_QRXLEVMIN;
4125 
4126 typedef struct
4127 {
4128  guint16 PCID;
4130 
4131 typedef struct
4132 {
4133  guint8 PCID_Pattern_length;
4134  guint8 PCID_Pattern;
4135  guint8 PCID_Pattern_sense;
4137 
4138 typedef struct
4139 {
4140  guint8 NumberOfPCIDs;
4141  guint16 PCID_a[11];
4142 
4143  gboolean existPCID_BITMAP_GROUP;
4144  guint8 PCID_BITMAP_GROUP;
4145 
4146  guint8 NumberOfPCID_Patterns;
4147  PCID_Pattern_t PCID_Pattern_a[19];
4149 
4150 typedef struct
4151 {
4152  guint8 EUTRAN_FREQUENCY_INDEX;
4154 
4155 typedef struct
4156 {
4157  PCID_Group_IE_t NotAllowedCells;
4158  guint8 NumberOfFrequencyIndexes;
4159  EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4161 
4162 typedef struct
4163 {
4164  guint8 NumberOfMappings;
4165  PCID_Group_IE_t PCID_ToTA_Mapping_a[14];
4166 
4167  guint8 NumberOfFrequencyIndexes;
4168  EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4170 
4171 typedef struct
4172 {
4173  guint8 EUTRAN_CCN_ACTIVE;
4174 
4175  gboolean existGPRS_EUTRAN_MeasurementParametersDescription;
4176  GPRS_EUTRAN_MeasurementParametersDescription_t GPRS_EUTRAN_MeasurementParametersDescription;
4177 
4178  guint8 nbrOfRepeatedEUTRAN_NeighbourCellsStructs;
4179  RepeatedEUTRAN_NeighbourCells_t RepeatedEUTRAN_NeighbourCells_a[4];
4180 
4181  guint8 NumberOfNotAllowedCells;
4182  RepeatedEUTRAN_NotAllowedCells_t RepeatedEUTRAN_NotAllowedCells_a[14];
4183 
4184  guint8 NumberOfMappings;
4185  RepeatedEUTRAN_PCID_to_TA_mapping_t RepeatedEUTRAN_PCID_to_TA_mapping_a[19];
4187 
4188 typedef struct
4189 {
4190  guint8 GERAN_PRIORITY;
4191  guint8 THRESH_Priority_Search;
4192  guint8 THRESH_GSM_low;
4193  guint8 H_PRIO;
4194  guint8 T_Reselection;
4196 
4197 typedef struct
4198 {
4199  gboolean existServingCellPriorityParametersDescription;
4200  ServingCellPriorityParametersDescription_t ServingCellPriorityParametersDescription;
4201 
4202  gboolean existPriorityParametersDescription3G_PMO;
4203  PriorityParametersDescription3G_PMO_t PriorityParametersDescription3G_PMO;
4204 
4205  gboolean existEUTRAN_ParametersDescription_PMO;
4206  EUTRAN_ParametersDescription_PMO_t EUTRAN_ParametersDescription_PMO;
4208 
4209 typedef struct
4210 {
4211  guint8 PSC_Pattern_length;
4212  guint8 PSC_Pattern;
4213  gboolean PSC_Pattern_sense;
4215 
4216 typedef struct
4217 {
4218  guint8 PSC_Count;
4219  guint16 PSC[32];
4220  guint8 PSC_Pattern_Count;
4221  PSC_Pattern_t PSC_Pattern[32];
4223 
4224 typedef struct
4225 {
4226  PSC_Group_t CSG_PSC_SPLIT;
4227  guint8 Count;
4228  guint8 UTRAN_FREQUENCY_INDEX[32];
4230 
4231 typedef struct
4232 {
4233  guint8 Count;
4234  ThreeG_CSG_Description_Body_t ThreeG_CSG_Description_Body[32];
4236 
4237 typedef struct
4238 {
4239  PSC_Group_t CSG_PCI_SPLIT;
4240  guint8 Count;
4241  guint8 EUTRAN_FREQUENCY_INDEX[32];
4243 
4244 typedef struct
4245 {
4246  guint8 Count;
4247  EUTRAN_CSG_Description_Body_t EUTRAN_CSG_Description_Body[32];
4249 
4250 typedef struct
4251 {
4252  gboolean existMeasurement_Control_EUTRAN;
4253  gboolean Measurement_Control_EUTRAN;
4254  guint8 EUTRAN_FREQUENCY_INDEX_top;
4255  guint8 Count_EUTRAN_FREQUENCY_INDEX;
4256  guint8 EUTRAN_FREQUENCY_INDEX[32];
4257 
4258  gboolean existMeasurement_Control_UTRAN;
4259  gboolean Measurement_Control_UTRAN;
4260  guint8 UTRAN_FREQUENCY_INDEX_top;
4261  guint8 Count_UTRAN_FREQUENCY_INDEX;
4262  guint8 UTRAN_FREQUENCY_INDEX[32];
4264 
4265 typedef struct
4266 {
4267  guint8 THRESH_EUTRAN_high_Q;
4268  gboolean existTHRESH_EUTRAN_low_Q;
4269  guint8 THRESH_EUTRAN_low_Q;
4270  gboolean existEUTRAN_QQUALMIN;
4271  guint8 EUTRAN_QQUALMIN;
4272  gboolean existEUTRAN_RSRPmin;
4273  guint8 EUTRAN_RSRPmin;
4275 
4276 typedef struct
4277 {
4278  guint8 Count_EUTRAN_FREQUENCY_INDEX;
4279  guint8 EUTRAN_FREQUENCY_INDEX[32];
4280  guint8 UnionType;
4281  union
4282  {
4283  guint8 EUTRAN_Qmin;
4284  Reselection_Based_On_RSRQ_t Reselection_Based_On_RSRQ;
4285  } u;
4287 
4288 typedef struct
4289 {
4290  guint8 Count;
4291  Rept_EUTRAN_Enh_Cell_Resel_Param_t Repeated_EUTRAN_Enhanced_Cell_Reselection_Parameters[32];
4293 
4294 typedef struct
4295 {
4296  gboolean existUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4297  guint8 UTRAN_CSG_FDD_REPORTING_THRESHOLD;
4298  guint8 UTRAN_CSG_FDD_REPORTING_THRESHOLD_2;
4299  gboolean existUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4300  guint8 UTRAN_CSG_TDD_REPORTING_THRESHOLD;
4302 
4303 typedef struct
4304 {
4305  gboolean existEUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4306  guint8 EUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4307  guint8 EUTRAN_CSG_FDD_REPORTING_THRESHOLD_2;
4308  gboolean existEUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4309  guint8 EUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4310  guint8 EUTRAN_CSG_TDD_REPORTING_THRESHOLD_2;
4312 
4313 typedef struct
4314 {
4315  gboolean existUTRAN_CSG_Cells_Reporting_Description;
4316  UTRAN_CSG_Cells_Reporting_Desp_t UTRAN_CSG_Cells_Reporting_Description;
4317  gboolean existEUTRAN_CSG_Cells_Reporting_Description;
4318  EUTRAN_CSG_Cells_Reporting_Desp_t EUTRAN_CSG_Cells_Reporting_Description;
4320 
4321 typedef struct
4322 {
4323  gboolean existEnhanced_Cell_Reselection_Parameters_Description;
4324  Enh_Cell_Reselect_Param_Desp_t Enhanced_Cell_Reselection_Parameters_Description;
4325 
4326  gboolean existCSG_Cells_Reporting_Description;
4327  CSG_Cells_Reporting_Desp_t CSG_Cells_Reporting_Description;
4329 
4330 typedef struct
4331 {
4332  guint8 dummy;
4334 
4335 typedef struct
4336 {
4337  guint8 Count;
4338  guint16 FDD_ARFCN[32];
4340 
4341 typedef struct
4342 {
4343  guint8 Count;
4344  guint16 TDD_ARFCN[32];
4346 
4347 typedef struct
4348 {
4349  guint8 UnionType;
4350  union
4351  {
4352  Individual_UTRAN_Priority_FDD_t Individual_UTRAN_Priority_FDD;
4353  Individual_UTRAN_Priority_TDD_t Individual_UTRAN_Priority_TDD;
4354  } u;
4355  guint8 UTRAN_PRIORITY;
4357 
4358 typedef struct
4359 {
4360  guint8 Exist_DEFAULT_UTRAN_PRIORITY;
4361  guint8 DEFAULT_UTRAN_PRIORITY;
4362  guint8 Repeated_Individual_UTRAN_Priority_Parameters_Count;
4363  Repeated_Individual_UTRAN_Priority_Parameters_t Repeated_Individual_UTRAN_Priority_Parameters[32];
4365 
4366 typedef struct
4367 {
4368  guint8 Count;
4369  guint16 EARFCN[32];
4370  guint8 EUTRAN_PRIORITY;
4372 
4373 typedef struct
4374 {
4375  guint8 Exist_DEFAULT_EUTRAN_PRIORITY;
4376  guint8 DEFAULT_EUTRAN_PRIORITY;
4377  guint8 Count;
4378  Repeated_Individual_EUTRAN_Priority_Parameters_t Repeated_Individual_EUTRAN_Priority_Parameters[32];
4380 
4381 typedef struct
4382 {
4383  guint8 GERAN_PRIORITY;
4384  guint8 Exist_3G_Individual_Priority_Parameters_Description;
4385  ThreeG_Individual_Priority_Parameters_Description_t ThreeG_Individual_Priority_Parameters_Description;
4386  guint8 Exist_EUTRAN_Individual_Priority_Parameters_Description;
4387  EUTRAN_Individual_Priority_Parameters_Description_t EUTRAN_Individual_Priority_Parameters_Description;
4388  guint8 Exist_T3230_timeout_value;
4389  guint8 T3230_timeout_value;
4391 
4392 typedef struct
4393 {
4394  guint8 UnionType;
4395  union
4396  {
4397  Delete_All_Stored_Individual_Priorities_t Delete_All_Stored_Individual_Priorities;
4398  Provide_Individual_Priorities_t Provide_Individual_Priorities;
4399  } u;
4401 
4402 typedef struct
4403 {
4404  gboolean existBA_IND_3G_PMO_IND;
4405  guint8 BA_IND_3G;
4406  guint8 PMO_IND;
4407 
4408  gboolean existPriorityAndEUTRAN_ParametersDescription_PMO;
4409  PriorityAndEUTRAN_ParametersDescription_PMO_t PriorityAndEUTRAN_ParametersDescription_PMO;
4410 
4411  gboolean existIndividualPriorities_PMO;
4412  Individual_Priorities_t IndividualPriorities_PMO;
4413 
4414  gboolean existThreeG_CSG_Description;
4415  ThreeG_CSG_Description_t ThreeG_CSG_Description_PMO;
4416 
4417  gboolean existEUTRAN_CSG_Description;
4418  EUTRAN_CSG_Description_t EUTRAN_CSG_Description_PMO;
4419 
4420  gboolean existMeasurement_Control_Parameters_Description;
4421  Meas_Ctrl_Param_Desp_t Measurement_Control_Parameters_Description_PMO;
4422 
4423  gboolean existAdditionsR9;
4424  PMO_AdditionsR9_t AdditionsR9;
4426 
4427 typedef struct
4428 {
4429  gboolean existREPORTING_OFFSET_THRESHOLD_700;
4430  guint8 REPORTING_OFFSET_700;
4431  guint8 REPORTING_THRESHOLD_700;
4432 
4433  gboolean existREPORTING_OFFSET_THRESHOLD_810;
4434  guint8 REPORTING_OFFSET_810;
4435  guint8 REPORTING_THRESHOLD_810;
4436 
4437  guint8 existAdditionsR8;
4438  PMO_AdditionsR8_t additionsR8;
4440 
4441 typedef struct
4442 {
4443  guint8 CCN_ACTIVE_3G;
4444  guint8 existAdditionsR7;
4445  PMO_AdditionsR7_t additionsR7;
4447 
4448 typedef struct
4449 {
4450  guint8 CCN_ACTIVE_3G;
4452 
4453 typedef struct
4454 {
4455  guint8 existGRNTI_Extension;
4456  guint8 GRNTI;
4457  guint8 exist_lu_ModeNeighbourCellParams;
4458  guint8 count_lu_ModeNeighbourCellParams;
4459  lu_ModeNeighbourCellParams_t lu_ModeNeighbourCellParams[32];
4460  guint8 existNC_lu_ModeOnlyCapableCellList;
4461  NC_lu_ModeOnlyCapableCellList_t NC_lu_ModeOnlyCapableCellList;
4462  guint8 existGPRS_AdditionalMeasurementParams3G;
4463  GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
4464  guint8 existAdditionsR6;
4465  PMO_AdditionsR6_t additionsR6;
4467 
4468 typedef struct
4469 {
4470  guint8 existGRNTI_Extension;
4471  guint8 GRNTI;
4472  guint8 exist_lu_ModeNeighbourCellParams;
4473  guint8 count_lu_ModeNeighbourCellParams;
4474  lu_ModeNeighbourCellParams_t lu_ModeNeighbourCellParams[32];
4475  guint8 existNC_lu_ModeOnlyCapableCellList;
4476  NC_lu_ModeOnlyCapableCellList_t NC_lu_ModeOnlyCapableCellList;
4477  guint8 existGPRS_AdditionalMeasurementParams3G;
4478  GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
4479  guint8 existAdditionsR6;
4480  PCCO_AdditionsR6_t additionsR6;
4482 
4483 typedef struct
4484 {
4485  guint8 CCN_ACTIVE;
4486  guint8 Exist_CCN_Support_Description_ID;
4487  CCN_Support_Description_t CCN_Support_Description;
4488  guint8 Exist_AdditionsR5;
4489  PMO_AdditionsR5_t AdditionsR5;
4491 
4492 typedef struct
4493 {
4494  guint8 CCN_ACTIVE;
4495  guint8 Exist_Container_ID;
4496  guint8 CONTAINER_ID;
4497  guint8 Exist_CCN_Support_Description_ID;
4498  CCN_Support_Description_t CCN_Support_Description;
4499  guint8 Exist_AdditionsR5;
4500  PCCO_AdditionsR5_t AdditionsR5;
4502 
4503 typedef struct
4504 {
4505  ENH_Measurement_Parameters_PCCO_t ENH_Measurement_Parameters;
4506  guint8 Exist_AdditionsR4;
4507  PCCO_AdditionsR4_t AdditionsR4;
4509 
4510 typedef struct
4511 {
4512  guint8 Exist_ENH_Measurement_Parameters;
4513  ENH_Measurement_Parameters_PMO_t ENH_Measurement_Parameters;
4514  guint8 Exist_AdditionsR4;
4515  PMO_AdditionsR4_t AdditionsR4;
4517 
4518 typedef struct
4519 {
4520  guint8 Exist_LSA_Parameters;
4521  LSA_Parameters_t LSA_Parameters;
4522 
4523  guint8 Exist_AdditionsR99;
4524  PMO_AdditionsR99_t AdditionsR99;
4526 
4527 typedef struct
4528 {
4529  guint8 Exist_LSA_Parameters;
4530  LSA_Parameters_t LSA_Parameters;
4531 
4532  guint8 Exist_AdditionsR99;
4533  PCCO_AdditionsR99_t AdditionsR99;
4535 
4536 typedef struct
4537 {
4538  guint8 IMMEDIATE_REL;
4539  guint16 ARFCN;
4540  guint8 BSIC;
4541  NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4542 
4543  guint8 Exist_AdditionsR98;
4544  PCCO_AdditionsR98_t AdditionsR98;
4546 
4547 typedef struct
4548 {
4549  guint8 Exist_EUTRAN_Target_Cell;
4550  EUTRAN_Target_Cell_t EUTRAN_Target_Cell;
4551  guint8 Exist_Individual_Priorities;
4552  Individual_Priorities_t Individual_Priorities;
4554 
4555 typedef struct
4556 {
4557  guint8 Exist_G_RNTI_Extention;
4558  guint8 G_RNTI_Extention;
4559  guint8 Exist_AdditionsR8;
4560  Target_Cell_3G_AdditionsR8_t AdditionsR8;
4562 
4563 typedef struct
4564 {
4565  /* 00 -- Message escape */
4566  guint8 IMMEDIATE_REL;
4567  guint8 Exist_FDD_Description;
4568  FDD_Target_Cell_t FDD_Target_Cell;
4569  guint8 Exist_TDD_Description;
4570  TDD_Target_Cell_t TDD_Target_Cell;
4571  guint8 Exist_AdditionsR5;
4572  Target_Cell_3G_AdditionsR5_t AdditionsR5;
4574 
4575 #if 0
4576 #define TARGET_CELL_GSM 0
4577 #define TARGET_CELL_3G 1
4578 #endif
4579 
4580 typedef struct
4581 {
4582  guint8 MESSAGE_TYPE;
4583  guint8 PAGE_MODE;
4584 
4586 
4587  guint8 UnionType;
4588  union
4589  {
4590  Target_Cell_GSM_t Target_Cell_GSM;
4591  Target_Cell_3G_t Target_Cell_3G;
4592  } u;
4593 
4596 /* < Packet Cell Change Continue message contents > */
4597 typedef struct
4598 {
4599  guint8 MESSAGE_TYPE;
4600  guint8 PAGE_MODE;
4601 
4602  Global_TFI_t Global_TFI;
4603  guint8 Exist_ID;
4604  guint16 ARFCN;
4605  guint8 BSIC;
4606  guint8 CONTAINER_ID;
4608 
4610 /* < Packet Neighbour Cell Data message contents > */
4611 typedef struct
4612 {
4613  guint16 ARFCN;
4614  guint8 BSIC;
4615  guint8 CONTAINER[17]; /* PD (3 bits) + CD_LENGTH (5 bits) + 16 bytes of CONTAINER_DATA (max!) */
4617 
4618 typedef struct
4619 {
4620  guint8 CONTAINER[19]; /* PD (3 bits) + CD_LENGTH (5 bits) + 18 bytes of CONTAINER_DATA (max!) */
4622 
4623 typedef struct
4624 {
4625  guint8 UnionType;
4626  union
4627  {
4628  PNCD_Container_Without_ID_t PNCD_Container_Without_ID;
4629  PNCD_Container_With_ID_t PNCD_Container_With_ID;
4630  } u;
4632 
4633 typedef struct
4634 {
4635  guint8 MESSAGE_TYPE;
4636  guint8 PAGE_MODE;
4637  /* Fixed 0 */
4638  Global_TFI_t Global_TFI;
4639  guint8 CONTAINER_ID;
4640  guint8 spare;
4641  guint8 CONTAINER_INDEX;
4642 
4643  PNCDContainer_t Container;
4646 /* < Packet Serving Cell Data message contents > */
4647 typedef struct
4648 {
4649  guint8 MESSAGE_TYPE;
4650  guint8 PAGE_MODE;
4651  /* Fixed 0 */
4652  Global_TFI_t Global_TFI;
4653  guint8 spare;
4654  guint8 CONTAINER_INDEX;
4655  guint8 CONTAINER[19]; /* PD (3 bits) + CD_LENGTH (5 bits) + 18 bytes of CONTAINER_DATA (max!) */
4658 /* < Packet Measurement Order message contents > */
4659 typedef struct
4660 {
4661  guint16 START_FREQUENCY;
4662  guint8 NR_OF_FREQUENCIES;
4663  guint8 FREQ_DIFF_LENGTH;
4664 
4665  guint8 Count_FREQUENCY_DIFF;
4666  guint8 FREQUENCY_DIFF[31];/* bit (FREQ_DIFF_LENGTH) * NR_OF_FREQUENCIES --> MAX is bit(7) * 31 */
4668 
4669 typedef struct
4670 {
4671  guint8 MESSAGE_TYPE;
4672  guint8 PAGE_MODE;
4673 
4674  PacketDownlinkID_t ID; /* use the PDA ID as it is the same as the PMO */
4675 
4676  guint8 PMO_INDEX;
4677  guint8 PMO_COUNT;
4678 
4679  guint8 Exist_NC_Measurement_Parameters;
4680  NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4681 
4682  guint8 Exist_EXT_Measurement_Parameters;
4683 
4684  guint8 Exist_AdditionsR98;
4685  PMO_AdditionsR98_t AdditionsR98;
4687 
4688 /* Enhanced measurement report */
4689 
4690 typedef struct
4691 {
4692  guint8 RXLEV_SERVING_CELL;
4694 
4695 typedef struct
4696 {
4697  guint8 BCCH_FREQ_NCELL;
4698  guint8 BSIC;
4699  guint8 RXLEV_NCELL;
4701 
4702 typedef struct
4703 {
4704  gboolean Exist_REPORTING_QUANTITY;
4705  guint8 REPORTING_QUANTITY;
4707 
4708 typedef struct
4709 {
4710  guint8 NC_MODE;
4711  guint8 UnionType;
4712  union
4713  {
4714  BA_USED_t BA_USED;
4715  guint8 PSI3_CHANGE_MARK;
4716  } u;
4717  guint8 PMO_USED;
4718  guint8 SCALE;
4719  guint8 Exist_ServingCellData;
4720  ServingCellData_t ServingCellData;
4721  guint8 Count_Repeated_Invalid_BSIC_Info;
4722  Repeated_Invalid_BSIC_Info_t Repeated_Invalid_BSIC_Info[32];
4723 
4724  gboolean Exist_Repeated_REPORTING_QUANTITY;
4725  guint8 Count_Repeated_Reporting_Quantity;
4726  REPORTING_QUANTITY_t Repeated_REPORTING_QUANTITY[96];
4728 
4729 /* Packet Handover PHO ----------------- */
4730 
4731 typedef struct
4732 {
4733  guint8 UnionType;
4734  union
4735  {
4736  guint8 MS_TimeslotAllocation;
4737  Power_Control_Parameters_t Power_Control_Parameters;
4738  } u;
4740 
4741 typedef struct
4742 {
4743  guint8 TimeslotAllocation;
4744  guint8 PFI;
4745  guint8 RLC_Mode;
4746  guint8 TFI_Assignment;
4747  guint8 ControlACK;
4748  guint8 Exist_EGPRS_WindowSize;
4749  guint8 EGPRS_WindowSize;
4751 
4752 typedef struct
4753 {
4754  gboolean Exist_USF;
4755  guint8 USF;
4757 
4758 typedef struct
4759 {
4760  guint8 USF_0;
4761  PHO_USF_1_7_t USF_1_7[7];
4762  guint8 NBR_OfAllocatedTimeslots;
4764 
4765 typedef struct
4766 {
4767  guint8 PFI;
4768  guint8 RLC_Mode;
4769  guint8 TFI_Assignment;
4770  guint8 Exist_ChannelCodingCommand;
4771  guint8 ChannelCodingCommand;
4772  guint8 Exist_EGPRS_ChannelCodingCommand;
4773  guint8 EGPRS_ChannelCodingCommand;
4774  guint8 Exist_EGPRS_WindowSize;
4775  guint8 EGPRS_WindowSize;
4776  guint8 USF_Granularity;
4777  guint8 Exist_TBF_TimeslotAllocation;
4778  guint8 TBF_TimeslotAllocation;
4779  guint8 UnionType;
4780  union
4781  {
4782  guint8 USF_SingleAllocation;
4783  USF_AllocationArray_t USF_AllocationArray;
4784  } u;
4786 
4787 typedef struct
4788 {
4789  GlobalTimeslotDescription_t GlobalTimeslotDescription;
4790  guint8 Exist_PHO_UA;
4791  PHO_UplinkAssignment_t PHO_UA;
4793 
4794 typedef struct
4795 {
4796  guint8 Exist_ChannelCodingCommand;
4797  guint8 ChannelCodingCommand;
4798  guint8 Exist_GlobalTimeslotDescription_UA;
4800  guint8 Exist_DownlinkAssignment;
4801  PHO_DownlinkAssignment_t DownlinkAssignment;
4802 } PHO_GPRS_t;
4804 
4805 typedef struct
4806 {
4807  guint8 Exist_EGPRS_WindowSize;
4808  guint8 EGPRS_WindowSize;
4809  guint8 LinkQualityMeasurementMode;
4810  guint8 Exist_BEP_Period2;
4811  guint8 BEP_Period2;
4813 
4814 typedef struct
4815 {
4816  guint8 Exist_EGPRS_Description;
4817  EGPRS_Description_t EGPRS_Description;
4818  guint8 Exist_DownlinkAssignment;
4819  PHO_DownlinkAssignment_t DownlinkAssignment;
4821 
4822 typedef struct
4823 {
4824  guint8 Exist_EGPRS_WindowSize;
4825  guint8 EGPRS_WindowSize;
4826  guint8 Exist_EGPRS_ChannelCodingCommand;
4827  guint8 EGPRS_ChannelCodingCommand;
4828  guint8 Exist_BEP_Period2;
4829  guint8 BEP_Period2;
4830  guint8 Exist_GlobalTimeslotDescription_UA;
4832  guint8 Exist_DownlinkTBF;
4833  DownlinkTBF_t DownlinkTBF;
4835 
4836 typedef struct
4837 {
4838  Global_Packet_Timing_Advance_t GlobalPacketTimingAdvance;
4839  guint8 Exist_PacketExtendedTimingAdvance;
4840  guint8 PacketExtendedTimingAdvance;
4842 
4843 typedef struct
4844 {
4845  guint8 NAS_ContainerLength;
4846  guint8 Spare_1a;
4847  guint8 Spare_1b;
4848  guint8 Spare_1c;
4849  guint8 Old_XID;
4850  guint8 Spare_1e;
4851  guint8 Type_of_Ciphering_Algo;
4852  guint32 IOV_UI_value;
4854 
4855 typedef struct
4856 {
4857  guint8 RRC_ContainerLength;
4859 
4860 typedef struct
4861 {
4862  guint8 RRC_ContainerLength;
4864 
4865 typedef struct
4866 {
4867  guint8 Exist_HandoverReference;
4868  guint8 HandoverReference;
4869  guint8 ARFCN;
4870  guint8 SI;
4871  guint8 NCI;
4872  guint8 BSIC;
4873  guint8 Exist_CCN_Active;
4874  guint8 CCN_Active;
4875  guint8 Exist_CCN_Active_3G;
4876  guint8 CCN_Active_3G;
4877  guint8 Exist_CCN_Support_Description;
4878  CCN_Support_Description_t CCN_Support_Description;
4879  Frequency_Parameters_t Frequency_Parameters;
4880  guint8 NetworkControlOrder;
4881  guint8 Exist_PHO_TimingAdvance;
4882  PHO_TimingAdvance_t PHO_TimingAdvance;
4883  guint8 Extended_Dynamic_Allocation;
4884  guint8 RLC_Reset;
4885  guint8 Exist_PO_PR;
4886  guint8 PO;
4887  guint8 PR_Mode;
4888  guint8 Exist_UplinkControlTimeslot;
4889  guint8 UplinkControlTimeslot;
4890  guint8 UnionType;
4891  union
4892  {
4893  PHO_GPRS_t PHO_GPRS_Mode;
4894  PHO_EGPRS_t PHO_EGPRS_Mode;
4895  } u;
4897 
4898 typedef struct
4899 {
4900  PHO_RadioResources_t PHO_RadioResources;
4901  guint8 Exist_NAS_Container;
4902  NAS_Container_For_PS_HO_t NAS_Container;
4904 
4905 typedef struct
4906 {
4907  guint8 MessageType;
4908  guint8 PageMode;
4909  Global_TFI_t Global_TFI;
4910  guint8 ContainerID;
4911  guint8 UnionType;
4912  union
4913  {
4914  PS_HandoverTo_A_GB_ModePayload_t PS_HandoverTo_A_GB_ModePayload;
4915  PS_HandoverTo_UTRAN_Payload_t PS_HandoverTo_UTRAN_Payload;
4916  PS_HandoverTo_E_UTRAN_Payload_t PS_HandoverTo_E_UTRAN_Payload;
4917  } u;
4919 
4920 /* End Packet Handover */
4921 
4922 /* Packet Physical Information ----------------- */
4923 
4924 typedef struct
4925 {
4926  guint8 MessageType;
4927  guint8 PageMode;
4928  Global_TFI_t Global_TFI;
4929  guint8 TimingAdvance;
4931 
4932 /* End Packet Physical Information */
4933 
4934 
4936 /* ADDITIONAL MS RADIO ACCESS CAPABILITIES -----------------*/
4937 typedef struct
4938 {
4939  guint8 UnionType;
4940  union
4941  {
4942  Global_TFI_t Global_TFI;
4943  guint32 TLLI;
4944  } u;
4947 
4948 typedef struct
4949 {
4950  guint8 MESSAGE_TYPE;
4951  guint8 PayloadType;
4952  guint8 spare;
4953  guint8 R;
4954 
4956  MS_Radio_Access_capability_t MS_Radio_Access_capability2;
4958 
4959 /* End ADDITIONAL MS RADIO ACCESS CAPABILITIES */
4960 
4961 
4962 /* Packet Pause -----------------*/
4963 
4964 typedef struct
4965 {
4966  guint8 MESSAGE_TYPE;
4967 
4968  guint32 TLLI;
4969  guint8 RAI[48/8];
4970 } Packet_Pause_t;
4971 
4972 /* End Packet Pause */
4973 
4975 /* < Payload Type Data MAC Header content > */
4976 typedef struct
4977 {
4978  guint8 Payload_Type;
4979  guint8 Countdown_Value;
4980  guint8 SI;
4981  guint8 R;
4983 
4984 typedef struct
4985 {
4986  UL_Data_Mac_Header_t UL_Data_Mac_Header;
4987  guint8 Spare;
4988  guint8 PI;
4989  guint8 TFI;
4990  guint8 TI;
4991  guint8 BSN;
4992  guint8 E;
4994 
4995 typedef struct
4996 {
4997  guint8 MESSAGE_TYPE;
4998  guint8 CTRL_ACK;
5000 
5001 typedef struct
5002 {
5003  guint8 MESSAGE_TYPE;
5004  guint8 TN_RRBP;
5005  guint8 CTRL_ACK;
5007 
5008 typedef struct
5009 {
5010  guint8 MESSAGE_TYPE;
5011  guint8 CTRL_ACK;
5013 
5014 typedef struct
5015 {
5016  guint8 MESSAGE_TYPE;
5017  guint8 TN_RRBP;
5018  guint8 CTRL_ACK;
5020 
5021 typedef struct
5022 {
5023  guint8 Payload_Type;
5024  guint8 RRBP;
5025  guint8 S_P;
5026  guint8 USF;
5028 
5029 typedef struct
5030 {
5031  DL_Data_Mac_Header_t DL_Data_Mac_Header;
5032  guint8 Power_Reduction;
5033  guint8 TFI;
5034  guint8 FBI;
5035  guint8 BSN;
5036  guint8 E;
5038 
5039 typedef struct
5040 {
5041  guint8 TFI;
5042  guint8 RRBP;
5043  guint8 ES_P;
5044  guint8 USF;
5045  guint16 BSN1;
5046  guint16 BSN2_offset;
5047  guint8 Power_Reduction;
5048  guint8 SPB;
5049  guint8 CPS;
5050  guint8 PI;
5051  guint8 ECS_P;
5052  guint8 CC;
5053  guint8 SPARE1;
5054  guint8 SPARE2;
5055  guint8 SPARE3;
5057 
5064 
5066 
5067 typedef struct
5068 {
5069  guint8 TFI;
5070  guint8 Countdown_Value;
5071  guint8 SI;
5072  guint8 R;
5073  guint16 BSN1;
5074  guint16 BSN2_offset;
5075  guint8 PI;
5076  guint8 RSB;
5077  guint8 SPB;
5078  guint8 CPS;
5079  guint8 FOI;
5080  guint8 RI;
5081  guint8 DL_CC_EST;
5082  guint8 RTLLI;
5083  guint8 SPARE1;
5084  guint8 SPARE2;
5085  guint8 dummy;
5087 
5094 
5095 typedef struct
5096 {
5097  guint8 DOWNLINK_TFI;
5098  guint8 Exist_Wait;
5099  guint8 WAIT_INDICATION;
5100  guint8 WAIT_INDICATION_SIZE;
5101 }
5103 
5104 typedef struct
5105 {
5106  guint8 MESSAGE_TYPE;
5107  guint8 USED_DL_COVERAGE_CLASS;
5108  guint8 Reject_Count;
5109  EC_Reject_t Reject[16];
5110 }
5112 
5113 typedef struct
5114 {
5115  guint8 EC_MA_NUMBER;
5116  guint8 TSC;
5117  guint8 Primary_TSC_Set;
5118 }
5120 
5121 typedef struct {
5122  guint8 TIMING_ADVANCE_VALUE;
5124 
5125 typedef struct
5126 {
5127  guint8 MESSAGE_TYPE;
5128  guint8 USED_DL_COVERAGE_CLASS;
5129  Global_TFI_t Global_TFI;
5130  guint8 CONTROL_ACK;
5131 
5132  gboolean Exist_Frequency_Parameters;
5133  EC_Frequency_Parameters_t Frequency_Parameters;
5134 
5135  guint8 DL_COVERAGE_CLASS;
5136  guint8 STARTING_DL_TIMESLOT;
5137  guint8 TIMESLOT_MULTIPLICATOR;
5138  guint8 DOWNLINK_TFI_ASSIGNMENT;
5139  guint8 UL_COVERAGE_CLASS;
5140  guint8 STARTING_UL_TIMESLOT_OFFSET;
5141 
5142  gboolean Exist_EC_Packet_Timing_Advance;
5143  EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5144 
5145  gboolean Exist_P0_and_PR_MODE;
5146  guint8 P0;
5147  guint8 PR_MODE;
5148 
5149  gboolean Exist_GAMMA;
5150  guint8 GAMMA;
5151 
5152  guint8 ALPHA_Enable;
5153 
5154 }
5156 
5157 typedef struct
5158 {
5159  guint8 MESSAGE_TYPE;
5160  guint8 USED_DL_COVERAGE_CLASS;
5161  Global_TFI_t Global_TFI;
5162  guint8 TYPE_OF_ACK;
5163 }
5165 
5166 typedef struct
5167 {
5168  guint8 MESSAGE_TYPE;
5169  guint8 USED_DL_COVERAGE_CLASS;
5170  Global_TFI_t Global_TFI;
5171 
5172  gboolean Exist_T_AVG_T;
5173  guint8 T_AVG_T;
5174 
5175  gboolean Exist_EC_Packet_Timing_Advance;
5176  EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5177 
5178  gboolean Exist_GAMMA;
5179  guint8 GAMMA;
5180 }
5182 
5183 typedef struct
5184 {
5185  guint8 MESSAGE_TYPE;
5186  guint8 USED_DL_COVERAGE_CLASS;
5187  Global_TFI_t Global_TFI;
5188  guint8 TBF_RELEASE_CAUSE;
5189 
5190  guint8 Exist_Wait;
5191  guint8 WAIT_INDICATION;
5192  guint8 WAIT_INDICATION_SIZE;
5193 }
5195 
5196 typedef struct{
5197  gboolean Exist_DELAY_NEXT_UL_RLC_DATA_BLOCK;
5198  guint8 DELAY_NEXT_UL_RLC_DATA_BLOCK;
5199 }
5201 
5202 typedef struct
5203 {
5204  gboolean Exist_BSN_OFFSET;
5205  guint8 BSN_OFFSET;
5206  guint8 START_FIRST_UL_RLC_DATA_BLOCK;
5207  guint8 Count_FUA_Delay;
5208  FUA_Delay_t FUA_Delay[16]; /* Max RLC window size */
5209 }
5211 
5212 typedef struct{
5213  guint8 STARTING_SEQUENCE_NUMBER;
5214  guint16 RECEIVED_BLOCK_BITMAP;
5215 }
5217 
5218 typedef struct{
5219  guint8 STARTING_SEQUENCE_NUMBER;
5220  guint8 RECEIVED_BLOCK_BITMAP;
5221 }
5223 
5224 typedef struct{
5225  guint32 CONTENTION_RESOLUTION_TLLI;
5226  EC_Primary_AckNack_Description_t EC_AckNack_Description;
5227 }
5229 
5230 typedef struct{
5231  guint32 CONTENTION_RESOLUTION_rTLLI;
5232  EC_Primary_AckNack_Description_t EC_AckNack_Description;
5233 }
5235 
5236 typedef struct{
5237  guint8 EC_AckNack_Description_Type;
5238  union
5239  {
5240  EC_AckNack_Description_t EC_AckNack_Description;
5241  EC_Primary_AckNack_Description_TLLI_t EC_Primary_AckNack_Description_TLLI;
5242  EC_Primary_AckNack_Description_rTLLI_t EC_Primary_AckNack_Description_rTLLI;
5243  } u;
5244 
5245  PUAN_Fixed_Uplink_Allocation_t PUAN_Fixed_Uplink_Allocation;
5246  guint8 RESEGMENT;
5247 
5248  gboolean Exist_EGPRS_Channel_Coding_Command;
5249  guint8 EGPRS_Channel_Coding_Command;
5250 
5251  gboolean Exist_CC_TS;
5252  guint8 UL_COVERAGE_CLASS;
5253  guint8 STARTING_UL_TIMESLOT;
5254  guint8 DL_COVERAGE_CLASS;
5255  guint8 STARTING_DL_TIMESLOT_OFFSET;
5256  guint8 TIMESLOT_MULTIPLICATOR;
5258 typedef struct{
5259  gboolean Exist_CONTENTION_RESOLUTION_TLLI;
5260  guint32 CONTENTION_RESOLUTION_TLLI;
5261 
5262  gboolean Exist_MONITOR_EC_PACCH;
5263  guint8 T3238;
5264  guint8 Initial_Waiting_Time;
5265  guint8 EC_PACCH_Monitoring_Pattern;
5266 
5268 
5269 typedef struct
5270 {
5271  guint8 MESSAGE_TYPE;
5272  guint8 USED_DL_COVERAGE_CLASS;
5273  guint8 UPLINK_TFI;
5274  guint8 Final_Ack_Indicator;
5275  union
5276  {
5279  } u;
5280 
5281  gboolean Exist_EC_Packet_Timing_Advance;
5282  EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5283 
5284  gboolean Exist_GAMMA;
5285  guint8 GAMMA;
5286  guint8 ALPHA_Enable;
5287 }
5289 
5290 typedef struct
5291 {
5292  guint8 START_FIRST_UL_RLC_DATA_BLOCK;
5293  guint8 Count_FUA_Delay;
5294  FUA_Delay_t FUA_Delay[16]; /* Max RLC window size */
5295 }
5297 
5298 typedef struct
5299 {
5300  guint8 MESSAGE_TYPE;
5301  guint8 USED_DL_COVERAGE_CLASS;
5302  Global_TFI_t Global_TFI;
5303 
5304  gboolean Exist_UPLINK_TFI_ASSIGNMENT;
5305  guint8 UPLINK_TFI_ASSIGNMENT;
5306 
5307  gboolean Exist_EGPRS_Channel_Coding_Command;
5308  guint8 EGPRS_Channel_Coding_Command;
5309 
5310  guint8 Overlaid_CDMA_Code;
5311 
5312  gboolean Exist_EC_Packet_Timing_Advance;
5313  EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5314 
5315  gboolean Exist_Frequency_Parameters;
5316  EC_Frequency_Parameters_t Frequency_Parameters;
5317 
5318  guint8 UL_COVERAGE_CLASS;
5319  guint8 STARTING_UL_TIMESLOT;
5320  guint8 TIMESLOT_MULTIPLICATOR;
5321 
5322  Fixed_Uplink_Allocation_t Fixed_Uplink_Allocation;
5323 
5324  gboolean Exist_P0_and_PR_MODE;
5325  guint8 P0;
5326  guint8 PR_MODE;
5327 
5328  gboolean Exist_GAMMA;
5329  guint8 GAMMA;
5330  guint8 ALPHA_Enable;
5331 
5332  guint8 DL_COVERAGE_CLASS;
5333  guint8 STARTING_DL_TIMESLOT_OFFSET;
5334 
5335 }
5337 
5338 typedef struct
5339 {
5340  guint8 MESSAGE_TYPE;
5341  guint8 USED_DL_COVERAGE_CLASS;
5342  guint8 UPLINK_TFI;
5343  guint32 CONTENTION_RESOLUTION_TLLI;
5344  EC_Primary_AckNack_Description_t EC_AckNack_Description;
5345 
5346  Fixed_Uplink_Allocation_t PUANCR_Fixed_Uplink_Allocation;
5347  guint8 RESEGMENT;
5348 }
5350 
5351 typedef struct
5352 {
5353  guint8 MESSAGE_TYPE;
5354  guint8 USED_DL_COVERAGE_CLASS;
5355 }
5357 
5358 typedef struct
5359 {
5360  guint8 MESSAGE_TYPE;
5361  guint32 TLLI;
5362  guint8 CTRL_ACK;
5363  guint8 DL_CC_EST;
5364 }
5366 
5367 typedef struct
5368 {
5369  guint8 PRIORITY;
5370  guint8 NUMBER_OF_UL_DATA_BLOCKS;
5371 }
5373 
5374 typedef struct
5375 {
5376  gboolean Exist_GMSK;
5377  guint8 GMSK_MEAN_BEP;
5378  guint8 GMSK_CV_BEP;
5379  gboolean Exist_8PSK;
5380  guint8 PSK_MEAN_BEP;
5381  guint8 PSK_CV_BEP;
5382  guint8 C_VALUE;
5383 }
5385 
5386 typedef struct
5387 {
5388  guint8 MESSAGE_TYPE;
5389  guint8 DOWNLINK_TFI;
5390  guint8 MS_OUT_OF_MEMORY;
5391  guint8 Final_Ack_Indicator;
5392 
5393  EC_AckNack_Description_t EC_AckNack_Description;
5394 
5395  gboolean Exist_EC_Channel_Quality_Report; /* DL CC EST is also conditional on this */
5396  EC_Channel_Quality_Report_t EC_Channel_Quality_Report;
5397  guint8 DL_CC_EST;
5398 
5399  gboolean Exist_EC_Channel_Request_Description;
5400  EC_Channel_Request_Description_t EC_Channel_Request_Description;
5401 }
5403 
5404 /*
5405 < NC Measurement Parameters struct > ::=
5406  < NETWORK_CONTROL_ORDER : bit (2) >
5407  { 0 | 1 < NC_ NON_DRX_PERIOD : bit (3) >
5408  < NC_REPORTING_PERIOD_I : bit (3) >
5409  < NC_REPORTING_PERIOD_T : bit (3) > } ;
5410 < Cell Selection struct > ::=
5411  < EXC_ACC : bit >
5412  < CELL_BAR_ACCESS_2 : bit (1) >
5413  < SAME_RA_AS_SERVING_CELL : bit (1) >
5414  { 0 | 1 < GPRS_RXLEV_ACCESS_MIN : bit (6) >
5415  < GPRS_MS_TXPWR_MAX_CCH : bit (5) > }
5416 { 0 | 1 < GPRS_TEMPORARY_OFFSET : bit (3) >
5417  < GPRS_PENALTY_TIME : bit (5) > }
5418 Table 25 (concluded): PACKET CELL CHANGE ORDER message content
5419  { 0 | 1 < GPRS_RESELECT_OFFSET : bit (5) > }
5420 { 0 | 1 < HCS params : < HCS struct > > }
5421 { 0 | 1 < SI13_PBCCH_LOCATION : < SI13_PBCCH_LOCATION struct > > } ;
5422 
5423 < SI13_PBCCH_LOCATION struct > ::=
5424  { 0 < SI13_LOCATION : bit (1) >
5425  | 1 < PBCCH_LOCATION : bit (2) >
5426  < PSI1_REPEAT_PERIOD : bit (4) > } ;
5427 
5428 < HCS struct > ::=
5429  < GPRS_PRIORITY_CLASS : bit (3) >
5430  < GPRS_HCS_THR : bit (5) > ;
5431 */
5432 
5433 /* < Downlink RLC/MAC control message > */
5434 #define MT_PACKET_CELL_CHANGE_ORDER 0x01
5435 #define MT_PACKET_DOWNLINK_ASSIGNMENT 0x02
5436 #define MT_PACKET_MEASUREMENT_ORDER 0x03
5437 #define MT_PACKET_POLLING_REQ 0x04
5438 #define MT_PACKET_POWER_CONTROL_TIMING_ADVANCE 0x05
5439 #define MT_PACKET_QUEUEING_NOTIFICATION 0x06
5440 #define MT_PACKET_TIMESLOT_RECONFIGURE 0x07
5441 #define MT_PACKET_TBF_RELEASE 0x08
5442 #define MT_PACKET_UPLINK_ACK_NACK 0x09
5443 #define MT_PACKET_UPLINK_ASSIGNMENT 0x0A
5444 #define MT_PACKET_CELL_CHANGE_CONTINUE 0x0B
5445 #define MT_PACKET_NEIGHBOUR_CELL_DATA 0x0C
5446 #define MT_PACKET_SERVING_CELL_DATA 0x0D
5447 #define MT_PACKET_HANDOVER_COMMAND 0x15
5448 #define MT_PACKET_PHYSICAL_INFORMATION 0x16
5449 #define MT_PACKET_ACCESS_REJECT 0x21
5450 #define MT_PACKET_PAGING_REQUEST 0x22
5451 #define MT_PACKET_PDCH_RELEASE 0x23
5452 #define MT_PACKET_PRACH_PARAMETERS 0x24
5453 #define MT_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK 0x25
5454 #define MT_PACKET_SYSTEM_INFO_6 0x30
5455 #define MT_PACKET_SYSTEM_INFO_1 0x31
5456 #define MT_PACKET_SYSTEM_INFO_2 0x32
5457 #define MT_PACKET_SYSTEM_INFO_3 0x33
5458 #define MT_PACKET_SYSTEM_INFO_3_BIS 0x34
5459 #define MT_PACKET_SYSTEM_INFO_4 0x35
5460 #define MT_PACKET_SYSTEM_INFO_5 0x36
5461 #define MT_PACKET_SYSTEM_INFO_13 0x37
5462 #define MT_PACKET_SYSTEM_INFO_7 0x38
5463 #define MT_PACKET_SYSTEM_INFO_8 0x39
5464 #define MT_PACKET_SYSTEM_INFO_14 0x3A
5465 #define MT_PACKET_SYSTEM_INFO_3_TER 0x3C
5466 #define MT_PACKET_SYSTEM_INFO_3_QUATER 0x3D
5467 #define MT_PACKET_SYSTEM_INFO_15 0x3E
5468 
5469 /* < Uplink RLC/MAC control message > */
5470 #define MT_PACKET_CELL_CHANGE_FAILURE 0x00
5471 #define MT_PACKET_CONTROL_ACK 0x01
5472 #define MT_PACKET_DOWNLINK_ACK_NACK 0x02
5473 #define MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK 0x03
5474 #define MT_PACKET_MEASUREMENT_REPORT 0x04
5475 #define MT_PACKET_RESOURCE_REQUEST 0x05
5476 #define MT_PACKET_MOBILE_TBF_STATUS 0x06
5477 #define MT_PACKET_PSI_STATUS 0x07
5478 #define MT_EGPRS_PACKET_DOWNLINK_ACK_NACK 0x08
5479 #define MT_PACKET_PAUSE 0x09
5480 #define MT_PACKET_ENHANCED_MEASUREMENT_REPORT 0x0A
5481 #define MT_ADDITIONAL_MS_RAC 0x0B
5482 #define MT_PACKET_CELL_CHANGE_NOTIFICATION 0x0C
5483 #define MT_PACKET_SI_STATUS 0x0D
5484 #define MT_ENHANCED_MEASUREMENT_REPORT 0x04
5485 
5486 /* < Downlink EC-GSM-IoT RLC/MAC control messages > */
5487 #define MT_EC_PACKET_ACCESS_REJECT 0x11
5488 #define MT_EC_PACKET_DOWNLINK_ASSIGNMENT 0x01
5489 #define MT_EC_PACKET_POLLING_REQ 0x02
5490 #define MT_EC_PACKET_POWER_CONTROL_TIMING_ADVANCE 0x03
5491 #define MT_EC_PACKET_TBF_RELEASE 0x04
5492 #define MT_EC_PACKET_UPLINK_ACK_NACK 0x05
5493 #define MT_EC_PACKET_UPLINK_ASSIGNMENT 0x06
5494 #define MT_EC_PACKET_UPLINK_ACK_NACK_AND_CONTENTION_RESOLUTION 0x07
5495 #define MT_EC_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK 0x12
5496 
5497 /* < Uplink EC-GSM-IoT RLC/MAC control messages > */
5498 #define MT_EC_PACKET_CONTROL_ACKNOWLEDGEMENT 0x01
5499 #define MT_EC_PACKET_DOWNLINK_ACK_NACK 0x02
5500 
5501 typedef enum
5502 {
5503  RLCMAC_PRACH = 0x20,
5504  RLCMAC_CS1 = 0x21,
5505  RLCMAC_CS2 = 0x22,
5506  RLCMAC_CS3 = 0x23,
5507  RLCMAC_CS4 = 0x24,
5508  RLCMAC_HDR_TYPE_1 = 0x31,
5509  RLCMAC_HDR_TYPE_2 = 0x32,
5510  RLCMAC_HDR_TYPE_3 = 0x33,
5511  RLCMAC_HDR_TYPE_4 = 0x34,
5512  RLCMAC_HDR_TYPE_5 = 0x35,
5513  RLCMAC_HDR_TYPE_6 = 0x36,
5514  RLCMAC_HDR_TYPE_7 = 0x37,
5515  RLCMAC_HDR_TYPE_8 = 0x38,
5516  RLCMAC_HDR_TYPE_9 = 0x39,
5517  RLCMAC_HDR_TYPE_10 = 0x3a,
5518  RLCMAC_EC_CS1 = 0x40,
5519  RLCMAC_HDR_TYPE_1_EC = 0x41,
5520  RLCMAC_HDR_TYPE_2_EC = 0x42,
5521  RLCMAC_HDR_TYPE_3_EC = 0x43
5522 }RLCMAC_block_format_t;
5524 /* < Downlink RLC/MAC control message > */
5525 typedef struct
5526 {
5527  union
5528  {
5529  guint8 MESSAGE_TYPE;
5530  DL_Data_Block_GPRS_t DL_Data_Block_GPRS;
5531  DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header;
5532  Packet_Access_Reject_t Packet_Access_Reject;
5533  Packet_Cell_Change_Order_t Packet_Cell_Change_Order;
5534  Packet_Cell_Change_Continue_t Packet_Cell_Change_Continue;
5535  Packet_Downlink_Assignment_t Packet_Downlink_Assignment;
5536  Packet_Measurement_Order_t Packet_Measurement_Order;
5537  Packet_Neighbour_Cell_Data_t Packet_Neighbour_Cell_Data;
5538  Packet_Serving_Cell_Data_t Packet_Serving_Cell_Data;
5539  Packet_Paging_Request_t Packet_Paging_Request;
5540  Packet_PDCH_Release_t Packet_PDCH_Release;
5541  Packet_Polling_Request_t Packet_Polling_Request;
5542  Packet_Power_Control_Timing_Advance_t Packet_Power_Control_Timing_Advance;
5543  Packet_PRACH_Parameters_t Packet_PRACH_Parameters;
5544  Packet_Queueing_Notification_t Packet_Queueing_Notification;
5545  Packet_Timeslot_Reconfigure_t Packet_Timeslot_Reconfigure;
5546  Packet_TBF_Release_t Packet_TBF_Release;
5547  Packet_Uplink_Ack_Nack_t Packet_Uplink_Ack_Nack;
5548  Packet_Uplink_Assignment_t Packet_Uplink_Assignment;
5549  Packet_Handover_Command_t Packet_Handover_Command;
5550  Packet_PhysicalInformation_t Packet_PhysicalInformation;
5551  Packet_Downlink_Dummy_Control_Block_t Packet_Downlink_Dummy_Control_Block;
5552  PSI1_t PSI1;
5553  PSI2_t PSI2;
5554  PSI3_t PSI3;
5555  PSI5_t PSI5;
5556  PSI13_t PSI13;
5557  EC_Packet_Access_Reject_t EC_Packet_Access_Reject;
5558  EC_Packet_Downlink_Assignment_t EC_Packet_Downlink_Assignment;
5559  EC_Packet_Polling_Req_t EC_Packet_Polling_Req;
5560  EC_Packet_Power_Control_Timing_Advance_t EC_Packet_Power_Control_Timing_Advance;
5561  EC_Packet_Tbf_Release_t EC_Packet_Tbf_Release;
5562  EC_Packet_Uplink_Ack_Nack_t EC_Packet_Uplink_Ack_Nack;
5563  EC_Packet_Uplink_Assignment_t EC_Packet_Uplink_Assignment;
5564  EC_Packet_Uplink_Ack_Nack_And_Contention_Resolution_t EC_Packet_Uplink_Ack_Nack_And_Contention_Resolution;
5565  EC_Packet_Downlink_Dummy_Control_Block_t EC_Packet_Downlink_Dummy_Control_Block;
5566  } u;
5567 
5568  RLCMAC_block_format_t block_format;
5569  guint flags;
5571 
5572 typedef gint16 MSGGPRS_Status_t;
5573 /* < Uplink RLC/MAC control message > */
5574 typedef struct
5575 {
5576  union
5577  {
5578  guint8 MESSAGE_TYPE;
5579  Packet_Cell_Change_Failure_t Packet_Cell_Change_Failure;
5580  Packet_Control_Acknowledgement_t Packet_Control_Acknowledgement;
5581  Packet_Downlink_Ack_Nack_t Packet_Downlink_Ack_Nack;
5582  Packet_Uplink_Dummy_Control_Block_t Packet_Uplink_Dummy_Control_Block;
5583  Packet_Measurement_Report_t Packet_Measurement_Report;
5584  Packet_Resource_Request_t Packet_Resource_Request;
5585  Packet_Mobile_TBF_Status_t Packet_Mobile_TBF_Status;
5586  Packet_PSI_Status_t Packet_PSI_Status;
5587  EGPRS_PD_AckNack_t Egprs_Packet_Downlink_Ack_Nack;
5588  Packet_Pause_t Packet_Pause;
5589  Packet_Enh_Measurement_Report_t Packet_Enh_Measurement_Report;
5590  Additional_MS_Rad_Access_Cap_t Additional_MS_Rad_Access_Cap;
5591  Packet_Cell_Change_Notification_t Packet_Cell_Change_Notification;
5592  Packet_SI_Status_t Packet_SI_Status;
5593  UL_Data_Block_GPRS_t UL_Data_Block_GPRS;
5594  UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header;
5595  UL_Packet_Control_Ack_11_t UL_Packet_Control_Ack_11;
5596  UL_Packet_Control_Ack_TN_RRBP_11_t UL_Packet_Control_Ack_TN_RRBP_11;
5597  UL_Packet_Control_Ack_8_t UL_Packet_Control_Ack_8;
5598  UL_Packet_Control_Ack_TN_RRBP_8_t UL_Packet_Control_Ack_TN_RRBP_8;
5599  EC_Packet_Control_Acknowledgement_t EC_Packet_Control_Acknowledgement;
5600  EC_Packet_Downlink_Ack_Nack_t EC_Packet_Downlink_Ack_Nack;
5601  } u;
5602  RLCMAC_block_format_t block_format;
5603  guint flags;
5605 
5606 typedef struct
5607 {
5608  guint16 bsn1;
5609  guint16 bsn2;
5610  guint8 pi;
5612 
5613 typedef struct
5614 {
5615  guint16 bsn1;
5616  guint16 bsn2;
5618 
5619 typedef struct
5620 {
5621  guint magic;
5622  RLCMAC_block_format_t block_format;
5623  guint8 mcs;
5624  guint frame_number;
5625 #define GSM_RLC_MAC_EGPRS_BLOCK1 0x01
5626 #define GSM_RLC_MAC_EGPRS_BLOCK2 0x02
5627 #define GSM_RLC_MAC_EGPRS_FANR_FLAG 0x08
5628  guint flags;
5629  union
5630  {
5631  egprs_ul_header_info_t egprs_ul_header_info;
5632  egprs_dl_header_info_t egprs_dl_header_info;
5633  }u;
5635 
5636 
5637 #if 0
5638 void GPRSMSG_Profile(gint16 i);
5639 #endif
5640 
5641 /* SI1_RestOctet_t */
5642 
5643 typedef struct
5644 {
5645  gboolean Exist_NCH_Position;
5646  guint8 NCH_Position;
5647 
5648  guint8 BandIndicator;
5649 } SI1_RestOctet_t;
5651 /* SI3_Rest_Octet_t */
5652 typedef struct
5653 {
5654  guint8 CBQ;
5655  guint8 CELL_RESELECT_OFFSET;
5656  guint8 TEMPORARY_OFFSET;
5657  guint8 PENALTY_TIME;
5659 
5660 typedef struct
5661 {
5662  guint8 Exist_Selection_Parameters;
5663  Selection_Parameters_t Selection_Parameters;
5664 
5665  guint8 Exist_Power_Offset;
5666  guint8 Power_Offset;
5667 
5668  guint8 System_Information_2ter_Indicator;
5669  guint8 Early_Classmark_Sending_Control;
5670 
5671  guint8 Exist_WHERE;
5672  guint8 WHERE;
5673 
5674  guint8 Exist_GPRS_Indicator;
5675  guint8 RA_COLOUR;
5676  guint8 SI13_POSITION;
5677  guint8 ECS_Restriction3G;
5678  guint8 ExistSI2quaterIndicator;
5679  guint8 SI2quaterIndicator;
5681 
5682 typedef struct
5683 {
5684  guint8 Exist_Selection_Parameters;
5685  Selection_Parameters_t Selection_Parameters;
5686 
5687  guint8 Exist_Power_Offset;
5688  guint8 Power_Offset;
5689 
5690  guint8 Exist_GPRS_Indicator;
5691  guint8 RA_COLOUR;
5692  guint8 SI13_POSITION;
5694 
5695 #if 0
5696 typedef SI4_Rest_Octet_t SI7_Rest_Octet_t;
5697 typedef SI4_Rest_Octet_t SI8_Rest_Octet_t;
5698 #endif
5699 
5700 /* SI6_RestOctet_t */
5701 
5702 typedef struct
5703 {
5704  guint8 PagingChannelRestructuring;
5705  guint8 NLN_SACCH;
5706 
5707  gboolean Exist_CallPriority;
5708  guint8 CallPriority;
5709 
5710  guint8 NLN_Status;
5712 
5713 typedef struct
5714 {
5715  gboolean Exist_PCH_and_NCH_Info;
5716  PCH_and_NCH_Info_t PCH_and_NCH_Info;
5717 
5718  gboolean Exist_VBS_VGCS_Options;
5719  guint8 VBS_VGCS_Options;
5720 
5721  /* The meaning of Exist_DTM_Support is as follows:
5722  * FALSE => DTM is not supported in the serving cell, RAC and MAX_LAPDm are absent in bitstream
5723  * TRUE => DTM is supported in the serving cell, RAC and MAX_LAPDm are present in bitstream
5724  */
5725  gboolean Exist_DTM_Support;
5726  guint8 RAC;
5727  guint8 MAX_LAPDm;
5728 
5729  guint8 BandIndicator; /* bit(1) L/H, L => ARFCN in 1800 band H => ARFCN in 1900 band */
5730 } SI6_RestOctet_t;
5731 
5732 /*************************************************
5733  * Enhanced Measurement Report. TS 04.18 9.1.55. *
5734  *************************************************/
5735 
5736 typedef struct
5737 {
5738  guint8 DTX_USED;
5739  guint8 RXLEV_VAL;
5740  guint8 RX_QUAL_FULL;
5741  guint8 MEAN_BEP;
5742  guint8 CV_BEP;
5743  guint8 NBR_RCVD_BLOCKS;
5745 
5746 typedef struct
5747 {
5748  guint8 RR_Short_PD;
5749  guint8 MESSAGE_TYPE;
5750  guint8 ShortLayer2_Header;
5751 
5752  BA_USED_t BA_USED;
5753  guint8 BSIC_Seen;
5754 
5755  guint8 SCALE;
5756 
5757  guint8 Exist_ServingCellData;
5758  EMR_ServingCell_t ServingCellData;
5759 
5760  guint8 Count_RepeatedInvalid_BSIC_Info; /* Number of instances */
5761  RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
5762 
5763  guint8 Exist_ReportBitmap;
5764  guint8 Count_REPORTING_QUANTITY_Instances; /* Number of instances */
5765  REPORTING_QUANTITY_Instance_t REPORTING_QUANTITY_Instances[REPORT_QUANTITY_LIST_LEN];
5766 
5768 
5769 extern const guint8 gsm_rlcmac_gprs_cs_to_block_length[];
5770 extern const guint8 gsm_rlcmac_egprs_header_type_to_dl_header_block_length[];
5771 extern const guint8 gsm_rlcmac_egprs_header_type_to_ul_header_block_length[];
5772 extern const guint8 gsm_rlcmac_egprs_mcs_to_data_block_length[];
5773 
5774 #endif /* __PACKET_GSM_RLCMAC_H__ */
5775 
5776 /*
5777  * Editor modelines - https://www.wireshark.org/tools/modelines.html
5778  *
5779  * Local Variables:
5780  * c-basic-offset: 2
5781  * tab-width: 8
5782  * indent-tabs-mode: nil
5783  * End:
5784  *
5785  * vi: set shiftwidth=2 tabstop=8 expandtab:
5786  * :indentSize=2:tabSize=8:noTabs=true:
5787  */
Definition: packet-gsm_rlcmac.h:1267
Definition: packet-gsm_rlcmac.h:406
Definition: packet-gsm_rlcmac.h:63
Definition: packet-gsm_rlcmac.h:3253
Definition: packet-gsm_rlcmac.h:4027
Definition: packet-gsm_rlcmac.h:4947
Definition: packet-gsm_rlcmac.h:1225
Definition: packet-gsm_rlcmac.h:1232
Definition: packet-gsm_rlcmac.h:4936
Definition: packet-gsm_rlcmac.h:3298
Definition: packet-gsm_rlcmac.h:3304
Definition: packet-gsm_rlcmac.h:3735
Definition: packet-gsm_rlcmac.h:1379
Definition: packet-gsm_rlcmac.h:1479
Definition: packet-gsm_rlcmac.h:3707
Definition: packet-gsm_rlcmac.h:3716
Definition: packet-gsm_rlcmac.h:3510
Definition: packet-gsm_rlcmac.h:3549
Definition: packet-gsm_rlcmac.h:212
Definition: packet-gsm_rlcmac.h:3843
Definition: packet-gsm_rlcmac.h:1957
Definition: packet-gsm_rlcmac.h:2899
Definition: packet-gsm_rlcmac.h:2937
Definition: packet-gsm_rlcmac.h:2921
Definition: packet-gsm_rlcmac.h:2928
Definition: packet-gsm_rlcmac.h:2140
Definition: packet-gsm_rlcmac.h:4312
Definition: packet-gsm_rlcmac.h:2692
Definition: packet-gsm_rlcmac.h:2742
Definition: packet-gsm_rlcmac.h:3212
Definition: packet-gsm_rlcmac.h:2873
Definition: packet-gsm_rlcmac.h:2847
Definition: packet-gsm_rlcmac.h:3243
Definition: packet-gsm_rlcmac.h:513
Definition: packet-gsm_rlcmac.h:3002
Definition: packet-gsm_rlcmac.h:3014
Definition: packet-gsm_rlcmac.h:118
Definition: packet-gsm_rlcmac.h:137
Definition: packet-gsm_rlcmac.h:2518
Definition: packet-gsm_rlcmac.h:1121
Definition: packet-gsm_rlcmac.h:5038
Definition: packet-gsm_rlcmac.h:5028
Definition: packet-gsm_rlcmac.h:5020
Definition: packet-gsm_rlcmac.h:2272
Definition: packet-gsm_rlcmac.h:2381
Definition: packet-gsm_rlcmac.h:2045
Definition: packet-gsm_rlcmac.h:1082
Definition: packet-gsm_rlcmac.h:1076
Definition: packet-gsm_rlcmac.h:2392
Definition: packet-gsm_rlcmac.h:2386
Definition: packet-gsm_rlcmac.h:2085
Definition: packet-gsm_rlcmac.h:2266
Definition: packet-gsm_rlcmac.h:4329
Definition: packet-gsm_rlcmac.h:1973
Definition: packet-gsm_rlcmac.h:1979
Definition: packet-gsm_rlcmac.h:2018
Definition: packet-gsm_rlcmac.h:586
Definition: packet-gsm_rlcmac.h:5210
Definition: packet-gsm_rlcmac.h:5373
Definition: packet-gsm_rlcmac.h:5366
Definition: packet-gsm_rlcmac.h:5112
Definition: packet-gsm_rlcmac.h:5103
Definition: packet-gsm_rlcmac.h:5357
Definition: packet-gsm_rlcmac.h:5156
Definition: packet-gsm_rlcmac.h:5165
Definition: packet-gsm_rlcmac.h:5182
Definition: packet-gsm_rlcmac.h:5119
Definition: packet-gsm_rlcmac.h:5222
Definition: packet-gsm_rlcmac.h:5228
Definition: packet-gsm_rlcmac.h:5216
Definition: packet-gsm_rlcmac.h:5094
Definition: packet-gsm_rlcmac.h:1259
Definition: packet-gsm_rlcmac.h:435
Definition: packet-gsm_rlcmac.h:451
Definition: packet-gsm_rlcmac.h:457
Definition: packet-gsm_rlcmac.h:1824
Definition: packet-gsm_rlcmac.h:4804
Definition: packet-gsm_rlcmac.h:611
Definition: packet-gsm_rlcmac.h:1831
Definition: packet-gsm_rlcmac.h:596
Definition: packet-gsm_rlcmac.h:5735
Definition: packet-gsm_rlcmac.h:3787
Definition: packet-gsm_rlcmac.h:3770
Definition: packet-gsm_rlcmac.h:3937
Definition: packet-gsm_rlcmac.h:3910
Definition: packet-gsm_rlcmac.h:3476
Definition: packet-gsm_rlcmac.h:3057
Definition: packet-gsm_rlcmac.h:4302
Definition: packet-gsm_rlcmac.h:4236
Definition: packet-gsm_rlcmac.h:4243
Definition: packet-gsm_rlcmac.h:3379
Definition: packet-gsm_rlcmac.h:1739
Definition: packet-gsm_rlcmac.h:4149
Definition: packet-gsm_rlcmac.h:4372
Definition: packet-gsm_rlcmac.h:3398
Definition: packet-gsm_rlcmac.h:3405
Definition: packet-gsm_rlcmac.h:4170
Definition: packet-gsm_rlcmac.h:4076
Definition: packet-gsm_rlcmac.h:1724
Definition: packet-gsm_rlcmac.h:4658
Definition: packet-gsm_rlcmac.h:3347
Definition: packet-gsm_rlcmac.h:4287
Definition: packet-gsm_rlcmac.h:5745
Definition: packet-gsm_rlcmac.h:3600
Definition: packet-gsm_rlcmac.h:3607
Definition: packet-gsm_rlcmac.h:1434
Definition: packet-gsm_rlcmac.h:865
Definition: packet-gsm_rlcmac.h:3565
Definition: packet-gsm_rlcmac.h:1705
Definition: packet-gsm_rlcmac.h:5194
Definition: packet-gsm_rlcmac.h:1881
Definition: packet-gsm_rlcmac.h:1987
Definition: packet-gsm_rlcmac.h:298
Definition: packet-gsm_rlcmac.h:933
Definition: packet-gsm_rlcmac.h:694
Definition: packet-gsm_rlcmac.h:4093
Definition: packet-gsm_rlcmac.h:412
Definition: packet-gsm_rlcmac.h:952
Definition: packet-gsm_rlcmac.h:679
Definition: packet-gsm_rlcmac.h:3039
Definition: packet-gsm_rlcmac.h:3803
Definition: packet-gsm_rlcmac.h:2817
Definition: packet-gsm_rlcmac.h:103
Definition: packet-gsm_rlcmac.h:92
Definition: packet-gsm_rlcmac.h:43
Definition: packet-gsm_rlcmac.h:4786
Definition: packet-gsm_rlcmac.h:4730
Definition: packet-gsm_rlcmac.h:2468
Definition: packet-gsm_rlcmac.h:2474
Definition: packet-gsm_rlcmac.h:475
Definition: packet-gsm_rlcmac.h:536
Definition: packet-gsm_rlcmac.h:527
Definition: packet-gsm_rlcmac.h:2799
Definition: packet-gsm_rlcmac.h:2716
Definition: packet-gsm_rlcmac.h:2722
Definition: packet-gsm_rlcmac.h:646
Definition: packet-gsm_rlcmac.h:661
Definition: packet-gsm_rlcmac.h:672
Definition: packet-gsm_rlcmac.h:785
Definition: packet-gsm_rlcmac.h:795
Definition: packet-gsm_rlcmac.h:1427
Definition: packet-gsm_rlcmac.h:1415
Definition: packet-gsm_rlcmac.h:1964
Definition: packet-gsm_rlcmac.h:4391
Definition: packet-gsm_rlcmac.h:4334
Definition: packet-gsm_rlcmac.h:4340
Definition: packet-gsm_rlcmac.h:1390
Definition: packet-gsm_rlcmac.h:1487
Definition: packet-gsm_rlcmac.h:218
Definition: packet-gsm_rlcmac.h:230
Definition: packet-gsm_rlcmac.h:238
Definition: packet-gsm_rlcmac.h:2831
Definition: packet-gsm_rlcmac.h:1284
Definition: packet-gsm_rlcmac.h:1240
Definition: packet-gsm_rlcmac.h:1252
Definition: packet-gsm_rlcmac.h:4249
Definition: packet-gsm_rlcmac.h:2281
Definition: packet-gsm_rlcmac.h:261
Definition: packet-gsm_rlcmac.h:3363
Definition: packet-gsm_rlcmac.h:491
Definition: packet-gsm_rlcmac.h:398
Definition: packet-gsm_rlcmac.h:485
Definition: packet-gsm_rlcmac.h:322
Definition: packet-gsm_rlcmac.h:2149
Definition: packet-gsm_rlcmac.h:1274
Definition: packet-gsm_rlcmac.h:3761
Definition: packet-gsm_rlcmac.h:1094
Definition: packet-gsm_rlcmac.h:3831
Definition: packet-gsm_rlcmac.h:3824
Definition: packet-gsm_rlcmac.h:4842
Definition: packet-gsm_rlcmac.h:3273
Definition: packet-gsm_rlcmac.h:305
Definition: packet-gsm_rlcmac.h:3284
Definition: packet-gsm_rlcmac.h:3336
Definition: packet-gsm_rlcmac.h:4707
Definition: packet-gsm_rlcmac.h:3315
Definition: packet-gsm_rlcmac.h:4041
Definition: packet-gsm_rlcmac.h:3896
Definition: packet-gsm_rlcmac.h:3880
Definition: packet-gsm_rlcmac.h:2891
Definition: packet-gsm_rlcmac.h:2881
Definition: packet-gsm_rlcmac.h:2749
Definition: packet-gsm_rlcmac.h:2704
Definition: packet-gsm_rlcmac.h:2710
Definition: packet-gsm_rlcmac.h:254
Definition: packet-gsm_rlcmac.h:544
Definition: packet-gsm_rlcmac.h:563
Definition: packet-gsm_rlcmac.h:971
Definition: packet-gsm_rlcmac.h:961
Definition: packet-gsm_rlcmac.h:986
Definition: packet-gsm_rlcmac.h:2730
Definition: packet-gsm_rlcmac.h:2637
Definition: packet-gsm_rlcmac.h:1763
Definition: packet-gsm_rlcmac.h:1755
Definition: packet-gsm_rlcmac.h:1771
Definition: packet-gsm_rlcmac.h:1747
Definition: packet-gsm_rlcmac.h:3669
Definition: packet-gsm_rlcmac.h:4491
Definition: packet-gsm_rlcmac.h:4467
Definition: packet-gsm_rlcmac.h:4447
Definition: packet-gsm_rlcmac.h:4526
Definition: packet-gsm_rlcmac.h:4502
Definition: packet-gsm_rlcmac.h:5701
Definition: packet-gsm_rlcmac.h:4137
Definition: packet-gsm_rlcmac.h:4130
Definition: packet-gsm_rlcmac.h:4125
Definition: packet-gsm_rlcmac.h:1798
Definition: packet-gsm_rlcmac.h:740
Definition: packet-gsm_rlcmac.h:2298
Definition: packet-gsm_rlcmac.h:3526
Definition: packet-gsm_rlcmac.h:3516
Definition: packet-gsm_rlcmac.h:3502
Definition: packet-gsm_rlcmac.h:4821
Definition: packet-gsm_rlcmac.h:4793
Definition: packet-gsm_rlcmac.h:4864
Definition: packet-gsm_rlcmac.h:4835
Definition: packet-gsm_rlcmac.h:4751
Definition: packet-gsm_rlcmac.h:173
Definition: packet-gsm_rlcmac.h:4482
Definition: packet-gsm_rlcmac.h:4452
Definition: packet-gsm_rlcmac.h:4440
Definition: packet-gsm_rlcmac.h:4426
Definition: packet-gsm_rlcmac.h:4401
Definition: packet-gsm_rlcmac.h:4517
Definition: packet-gsm_rlcmac.h:4509
Definition: packet-gsm_rlcmac.h:4320
Definition: packet-gsm_rlcmac.h:3419
Definition: packet-gsm_rlcmac.h:3411
Definition: packet-gsm_rlcmac.h:3427
Definition: packet-gsm_rlcmac.h:3390
Definition: packet-gsm_rlcmac.h:4610
Definition: packet-gsm_rlcmac.h:4617
Definition: packet-gsm_rlcmac.h:4622
Definition: packet-gsm_rlcmac.h:2626
Definition: packet-gsm_rlcmac.h:1511
Definition: packet-gsm_rlcmac.h:1504
Definition: packet-gsm_rlcmac.h:1545
Definition: packet-gsm_rlcmac.h:1535
Definition: packet-gsm_rlcmac.h:1520
Definition: packet-gsm_rlcmac.h:1558
Definition: packet-gsm_rlcmac.h:4897
Definition: packet-gsm_rlcmac.h:4859
Definition: packet-gsm_rlcmac.h:4854
Definition: packet-gsm_rlcmac.h:4215
Definition: packet-gsm_rlcmac.h:4208
Definition: packet-gsm_rlcmac.h:3134
Definition: packet-gsm_rlcmac.h:3125
Definition: packet-gsm_rlcmac.h:3116
Definition: packet-gsm_rlcmac.h:3143
Definition: packet-gsm_rlcmac.h:2645
Definition: packet-gsm_rlcmac.h:2650
Definition: packet-gsm_rlcmac.h:2659
Definition: packet-gsm_rlcmac.h:2698
Definition: packet-gsm_rlcmac.h:2772
Definition: packet-gsm_rlcmac.h:2944
Definition: packet-gsm_rlcmac.h:2958
Definition: packet-gsm_rlcmac.h:2950
Definition: packet-gsm_rlcmac.h:2984
Definition: packet-gsm_rlcmac.h:2967
Definition: packet-gsm_rlcmac.h:3024
Definition: packet-gsm_rlcmac.h:3079
Definition: packet-gsm_rlcmac.h:3071
Definition: packet-gsm_rlcmac.h:3087
Definition: packet-gsm_rlcmac.h:3095
Definition: packet-gsm_rlcmac.h:1640
Definition: packet-gsm_rlcmac.h:1633
Definition: packet-gsm_rlcmac.h:2560
Definition: packet-gsm_rlcmac.h:2589
Definition: packet-gsm_rlcmac.h:2537
Definition: packet-gsm_rlcmac.h:2543
Definition: packet-gsm_rlcmac.h:1903
Definition: packet-gsm_rlcmac.h:1922
Definition: packet-gsm_rlcmac.h:1873
Definition: packet-gsm_rlcmac.h:1889
Definition: packet-gsm_rlcmac.h:721
Definition: packet-gsm_rlcmac.h:2166
Definition: packet-gsm_rlcmac.h:2205
Definition: packet-gsm_rlcmac.h:2112
Definition: packet-gsm_rlcmac.h:2118
Definition: packet-gsm_rlcmac.h:3201
Definition: packet-gsm_rlcmac.h:4596
Definition: packet-gsm_rlcmac.h:1782
Definition: packet-gsm_rlcmac.h:3679
Definition: packet-gsm_rlcmac.h:4579
Definition: packet-gsm_rlcmac.h:1018
Definition: packet-gsm_rlcmac.h:1012
Definition: packet-gsm_rlcmac.h:1028
Definition: packet-gsm_rlcmac.h:3534
Definition: packet-gsm_rlcmac.h:4904
Definition: packet-gsm_rlcmac.h:4668
Definition: packet-gsm_rlcmac.h:3450
Definition: packet-gsm_rlcmac.h:1618
Definition: packet-gsm_rlcmac.h:4632
Definition: packet-gsm_rlcmac.h:2448
Definition: packet-gsm_rlcmac.h:3171
Definition: packet-gsm_rlcmac.h:1653
Definition: packet-gsm_rlcmac.h:2433
Definition: packet-gsm_rlcmac.h:4963
Definition: packet-gsm_rlcmac.h:4923
Definition: packet-gsm_rlcmac.h:854
Definition: packet-gsm_rlcmac.h:2484
Definition: packet-gsm_rlcmac.h:2504
Definition: packet-gsm_rlcmac.h:146
Definition: packet-gsm_rlcmac.h:1586
Definition: packet-gsm_rlcmac.h:1691
Definition: packet-gsm_rlcmac.h:4646
Definition: packet-gsm_rlcmac.h:1001
Definition: packet-gsm_rlcmac.h:2609
Definition: packet-gsm_rlcmac.h:71
Definition: packet-gsm_rlcmac.h:3964
Definition: packet-gsm_rlcmac.h:843
Definition: packet-gsm_rlcmac.h:2457
Definition: packet-gsm_rlcmac.h:1576
Definition: packet-gsm_rlcmac.h:2408
Definition: packet-gsm_rlcmac.h:2398
Definition: packet-gsm_rlcmac.h:81
Definition: packet-gsm_rlcmac.h:4196
Definition: packet-gsm_rlcmac.h:4065
Definition: packet-gsm_rlcmac.h:4380
Definition: packet-gsm_rlcmac.h:3330
Definition: packet-gsm_rlcmac.h:4701
Definition: packet-gsm_rlcmac.h:507
Definition: packet-gsm_rlcmac.h:3743
Definition: packet-gsm_rlcmac.h:3729
Definition: packet-gsm_rlcmac.h:3750
Definition: packet-gsm_rlcmac.h:2684
Definition: packet-gsm_rlcmac.h:3192
Definition: packet-gsm_rlcmac.h:3181
Definition: packet-gsm_rlcmac.h:3837
Definition: packet-gsm_rlcmac.h:3268
Definition: packet-gsm_rlcmac.h:4365
Definition: packet-gsm_rlcmac.h:4346
Definition: packet-gsm_rlcmac.h:4694
Definition: packet-gsm_rlcmac.h:2423
Definition: packet-gsm_rlcmac.h:4101
Definition: packet-gsm_rlcmac.h:4108
Definition: packet-gsm_rlcmac.h:4154
Definition: packet-gsm_rlcmac.h:4161
Definition: packet-gsm_rlcmac.h:3323
Definition: packet-gsm_rlcmac.h:4048
Definition: packet-gsm_rlcmac.h:246
Definition: packet-gsm_rlcmac.h:4275
Definition: packet-gsm_rlcmac.h:4264
Definition: packet-gsm_rlcmac.h:5618
Definition: packet-gsm_rlcmac.h:2837
Definition: packet-gsm_rlcmac.h:5642
Definition: packet-gsm_rlcmac.h:5659
Definition: packet-gsm_rlcmac.h:5681
Definition: packet-gsm_rlcmac.h:5712
Definition: packet-gsm_rlcmac.h:1678
Definition: packet-gsm_rlcmac.h:1668
Definition: packet-gsm_rlcmac.h:777
Definition: packet-gsm_rlcmac.h:5651
Definition: packet-gsm_rlcmac.h:3310
Definition: packet-gsm_rlcmac.h:2805
Definition: packet-gsm_rlcmac.h:4689
Definition: packet-gsm_rlcmac.h:4187
Definition: packet-gsm_rlcmac.h:2069
Definition: packet-gsm_rlcmac.h:501
Definition: packet-gsm_rlcmac.h:53
Definition: packet-gsm_rlcmac.h:36
Definition: packet-gsm_rlcmac.h:3573
Definition: packet-gsm_rlcmac.h:1714
Definition: packet-gsm_rlcmac.h:195
Definition: packet-gsm_rlcmac.h:4554
Definition: packet-gsm_rlcmac.h:4546
Definition: packet-gsm_rlcmac.h:3582
Definition: packet-gsm_rlcmac.h:4562
Definition: packet-gsm_rlcmac.h:3614
Definition: packet-gsm_rlcmac.h:3627
Definition: packet-gsm_rlcmac.h:3559
Definition: packet-gsm_rlcmac.h:4535
Definition: packet-gsm_rlcmac.h:3659
Definition: packet-gsm_rlcmac.h:3591
Definition: packet-gsm_rlcmac.h:3639
Definition: packet-gsm_rlcmac.h:3649
Definition: packet-gsm_rlcmac.h:4223
Definition: packet-gsm_rlcmac.h:4230
Definition: packet-gsm_rlcmac.h:4357
Definition: packet-gsm_rlcmac.h:2006
Definition: packet-gsm_rlcmac.h:2000
Definition: packet-gsm_rlcmac.h:5066
Definition: packet-gsm_rlcmac.h:4983
Definition: packet-gsm_rlcmac.h:4975
Definition: packet-gsm_rlcmac.h:4994
Definition: packet-gsm_rlcmac.h:5007
Definition: packet-gsm_rlcmac.h:5000
Definition: packet-gsm_rlcmac.h:5013
Definition: packet-gsm_rlcmac.h:4757
Definition: packet-gsm_rlcmac.h:4293
Definition: packet-gsm_rlcmac.h:3369
Definition: packet-gsm_rlcmac.h:1732
Definition: packet-gsm_rlcmac.h:3856
Definition: packet-gsm_rlcmac.h:3847
Definition: packet-gsm_rlcmac.h:3872
Definition: packet-gsm_rlcmac.h:3863
Definition: packet-gsm_rlcmac.h:1648
Definition: packet-gsm_rlcmac.h:1686
Definition: packet-gsm_rlcmac.h:5612
Definition: packet-gsm_rlcmac.h:5605
Definition: packet-gsm_rlcmac.h:2996
Definition: packet-gsm_rlcmac.h:3236
Definition: packet-gsm_rlcmac.h:3974
Definition: packet-gsm_rlcmac.h:3981
Definition: packet-gsm_rlcmac.h:3987
Definition: packet-gsm_rlcmac.h:3994
Definition: packet-gsm_rlcmac.h:4017