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