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