epan/dissectors/pidl/ C99 drsuapi
[wireshark-sm.git] / epan / dissectors / packet-gsm_rlcmac.h
blobf96431beff8bb41c1a8e4636adf52252c0c7adec
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
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald@wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * SPDX-License-Identifier: GPL-2.0-or-later
15 #ifndef __PACKET_GSM_RLCMAC_H__
16 #define __PACKET_GSM_RLCMAC_H__
18 #ifndef PRE_PACKED
19 #define PRE_PACKED
20 #endif
22 #ifndef POST_PACKED
23 #define POST_PACKED
24 #endif
26 #define GSM_RLC_MAC_MAGIC_NUMBER 0x67707273
28 typedef uint8_t TFI_t;
30 typedef uint8_t N32_t;
31 typedef uint8_t N51_t;
32 typedef uint8_t N26_t;
34 /* Starting Time IE as specified in 04.08 */
35 typedef struct
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 */
40 } StartingTime_t;
42 typedef struct
44 uint8_t UnionType;/* UnionType is index */
45 union
47 uint8_t UPLINK_TFI;
48 uint8_t DOWNLINK_TFI;
49 } u;
50 } Global_TFI_t;
52 typedef struct
54 uint8_t UnionType;
55 union
57 StartingTime_t StartingTime;
58 uint16_t k;
59 } u;
60 } Starting_Frame_Number_t;
62 typedef struct
64 uint8_t FINAL_ACK_INDICATION;
65 uint8_t STARTING_SEQUENCE_NUMBER;
66 uint8_t RECEIVED_BLOCK_BITMAP[64/8];
67 } Ack_Nack_Description_t;
70 typedef struct
72 uint8_t Exist_TIMING_ADVANCE_VALUE;
73 uint8_t TIMING_ADVANCE_VALUE;
75 uint8_t Exist_IndexAndtimeSlot;
76 uint8_t TIMING_ADVANCE_INDEX;
77 uint8_t TIMING_ADVANCE_TIMESLOT_NUMBER;
78 } Packet_Timing_Advance_t;
80 typedef struct
82 uint8_t ALPHA;
84 struct
86 uint8_t Exist;
87 uint8_t GAMMA_TN;
88 } Slot[8];
89 } Power_Control_Parameters_t;
91 typedef struct
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;
100 } Global_Power_Control_Parameters_t;
102 typedef struct
104 uint8_t Exist_TIMING_ADVANCE_VALUE;
105 uint8_t TIMING_ADVANCE_VALUE;
107 uint8_t Exist_UPLINK_TIMING_ADVANCE;
108 uint8_t UPLINK_TIMING_ADVANCE_INDEX;
109 uint8_t UPLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
111 uint8_t Exist_DOWNLINK_TIMING_ADVANCE;
112 uint8_t DOWNLINK_TIMING_ADVANCE_INDEX;
113 uint8_t DOWNLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
114 } Global_Packet_Timing_Advance_t;
117 typedef struct
119 uint8_t C_VALUE;
120 uint8_t RXQUAL;
121 uint8_t SIGN_VAR;
123 struct
125 uint8_t Exist;
126 uint8_t I_LEVEL_TN;
127 } Slot[8];
128 } Channel_Quality_Report_t;
130 typedef enum
132 RLC_MODE_ACKNOWLEDGED = 0,
133 RLC_MODE_UNACKNOWLEDGED = 1
134 } RLC_MODE_t;
136 typedef struct
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;
143 } Channel_Request_Description_t;
145 typedef struct
147 uint16_t RANDOM_ACCESS_INFORMATION;
148 uint8_t FRAME_NUMBER[2];
149 } Packet_Request_Reference_t;
151 typedef PRE_PACKED struct
153 uint8_t nsapi;
154 uint8_t value;
155 } Receive_N_PDU_Number_t POST_PACKED;
157 typedef PRE_PACKED struct
159 uint8_t IEI;
160 uint8_t Length;
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;
166 /** IMSI length */
167 #define IMSI_LEN 9
169 /** TMSI length */
170 #define TMSI_LEN 4
172 typedef struct
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;
183 /** This type is used to describe LAI codes */
184 typedef PRE_PACKED struct
186 PLMN_t PLMN;
187 uint16_t LAC;
188 } LAI_t POST_PACKED;
191 /** Length of LAI */
192 #define LAI_LEN (sizeof(LAI_t))
194 typedef struct
196 uint8_t TMSI[TMSI_LEN];
197 } TMSI_t;
199 typedef uint16_t CellId_t;
202 #define CKSN_NOT_VALID 7
204 #define IMEI_LEN 9
206 #define IMEISV_LEN 10
208 #define MAX_ELEMENTS_IN_EQPLMN_LIST 16
211 typedef struct
213 uint8_t NUMBER_CELLS;
214 uint8_t CCN_SUPPORTED[16]; /* bit (1), max size: 16 x 8 => 128 bits */
215 } CCN_Support_Description_t;
217 typedef struct
219 uint8_t UnionType;
220 union
222 uint8_t LSA_ID;
223 uint8_t ShortLSA_ID;
224 } u;
225 } LSA_ID_Info_Element_t;
227 #define LSA_ID_INFO_ELEMENTS_MAX (16)
229 typedef struct
231 uint8_t Count_LSA_ID_Info_Element;
232 LSA_ID_Info_Element_t LSA_ID_Info_Elements[LSA_ID_INFO_ELEMENTS_MAX];
233 } LSA_ID_Info_t;
235 #define NR_OF_FREQ_OR_CELLS_MAX (32)
237 typedef struct
239 uint8_t NR_OF_FREQ_OR_CELLS;
240 LSA_ID_Info_t LSA_ID_Info[NR_OF_FREQ_OR_CELLS_MAX];
241 } LSA_Parameters_t;
243 #define MAX_REPORT_PRIORITY_CELLS (16)
245 typedef struct
247 uint8_t NUMBER_CELLS;
248 uint8_t REPORT_PRIORITY[MAX_REPORT_PRIORITY_CELLS];
249 } ReportPriority_t;
251 typedef ReportPriority_t GPRSReportPriority_t;
253 typedef struct
255 uint8_t REPORTING_OFFSET;
256 uint8_t REPORTING_THRESHOLD;
257 } OffsetThreshold_t;
260 typedef struct
262 uint8_t Exist_MULTI_BAND_REPORTING;
263 uint8_t MULTI_BAND_REPORTING;
265 uint8_t Exist_SERVING_BAND_REPORTING;
266 uint8_t SERVING_BAND_REPORTING;
268 /* Warning:
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.
277 uint8_t Exist_SCALE_ORD;
278 uint8_t SCALE_ORD;
280 uint8_t Exist_OffsetThreshold900;
281 OffsetThreshold_t OffsetThreshold900;
283 uint8_t Exist_OffsetThreshold1800;
284 OffsetThreshold_t OffsetThreshold1800;
286 uint8_t Exist_OffsetThreshold400;
287 OffsetThreshold_t OffsetThreshold400;
289 uint8_t Exist_OffsetThreshold1900;
290 OffsetThreshold_t OffsetThreshold1900;
292 uint8_t Exist_OffsetThreshold850;
293 OffsetThreshold_t OffsetThreshold850;
295 } MeasurementParams_t;
297 typedef struct
299 uint8_t Exist_FDD_REPORTING_THRESHOLD_2;
300 uint8_t FDD_REPORTING_THRESHOLD_2;
301 } GPRS_AdditionalMeasurementParams3G_t;
304 typedef struct
306 uint8_t NETWORK_CONTROL_ORDER;
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;
312 } NC_Measurement_Parameters_t;
316 **========================================================================
317 ** Global types
318 **========================================================================
321 struct MobileId /* Mobile id, -> TMSI, IMEI or IMSI */
323 uint8_t Length;
324 uint8_t IdType;
325 uint8_t OddEven;
326 uint8_t Dig1;
327 union
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;
336 #if 0
337 struct OV_MobileId /* Struct for optional mobile identity */
339 unsigned char IEI;
340 struct MobileId MV;
343 #define LAC_INVALID 0xFEFF
345 typedef enum
347 LAI_PRIORITY_AVAILABLE,
348 LAI_PRIORITY_FORBIDDEN,
349 LAI_PRIORITY_FORCED
350 } LAI_Priority_t;
352 typedef enum
354 NOM_I,
355 NOM_II,
356 NOM_III,
357 NOM_GSM,
358 NOM_PS_ONLY,
359 NOM_UNKNOWN
360 } NMO_t;
362 typedef enum
364 COMBINED,
365 NOT_COMBINED,
366 SAME_AS_BEFORE
367 } ProcedureMode_t;
369 typedef struct
371 uint8_t Cause;
372 LAI_t LAI;
373 struct OV_MobileId MobileId;
374 } CombinedResult_t;
376 typedef enum
378 R97,
380 } MSCR_t, SGSNR_t;
382 typedef struct
384 uint8_t NbrOfElements;
385 PLMN_t Element[MAX_ELEMENTS_IN_EQPLMN_LIST];
386 } EqPLMN_List_t;
387 #endif
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 */
397 typedef struct
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;
403 } MobileAllocation_t;
405 typedef struct
407 uint8_t ElementsOf_ARFCN_INDEX;
408 uint8_t ARFCN_INDEX[16];
409 } ARFCN_index_list_t;
411 typedef struct
413 uint8_t HSN;
415 uint8_t ElementsOf_RFL_NUMBER;
416 uint8_t RFL_NUMBER[4];
418 uint8_t UnionType;
419 union
421 MobileAllocation_t MA;
422 ARFCN_index_list_t ARFCN_index_list;
423 } u;
424 } GPRS_Mobile_Allocation_t;
426 /* < EGPRS Ack/Nack Description >
427 * CRBB - Compressed Received Blocks Bitmap
428 * URBB - Uncompressed Received Blocks Bitmap
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 */
434 typedef struct
436 uint8_t FINAL_ACK_INDICATION;
437 uint8_t BEGINNING_OF_WINDOW;
438 uint8_t END_OF_WINDOW;
439 uint16_t STARTING_SEQUENCE_NUMBER;
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];
446 uint16_t URBB_LENGTH;
447 uint8_t URBB[URBB_MAX_BITS/8];
448 } EGPRS_AckNack_Desc_t;
450 typedef struct
452 uint8_t UnionType;
453 EGPRS_AckNack_Desc_t Desc;
454 } EGPRS_AckNack_t;
456 typedef struct
458 uint8_t LENGTH;
459 EGPRS_AckNack_Desc_t Desc;
460 } EGPRS_AckNack_w_len_t;
463 /* <P1 Rest Octets>
464 * <P2 Rest Octets>
466 #if 0
467 #define SF_VBS 0 /* VBS (broadcast call reference) */
468 #define SF_VGCS 1 /* VGCS (group call reference) */
470 #define AF_AckIsNotRequired 0 /* acknowledgement is not required */
471 #define AF_AckIsRequired 1 /* acknowledgement is required */
472 #endif
474 typedef struct
476 uint32_t value;
477 uint8_t SF;
478 uint8_t AF;
479 uint8_t call_priority;
480 uint8_t Ciphering_information;
481 } Group_Call_Reference_t;
483 /* Mobile allocation is coded differently but uses the same type! */
484 typedef struct
486 uint8_t Length;
487 uint8_t MA[8];
488 } MobileAllocationIE_t;
490 typedef struct
492 uint8_t UnionType;
493 union
495 MobileAllocationIE_t MA;
496 uint8_t Frequency_Short_List[64/8];
497 } u;
498 } MobileAllocation_or_Frequency_Short_List_t;
500 typedef struct
502 uint8_t spare;
503 uint16_t ARFCN;
504 } SingleRFChannel_t;
506 typedef struct
508 uint8_t MAIO;
509 uint8_t HSN;
510 } RFHoppingChannel_t;
512 typedef struct
514 uint8_t Channel_type_and_TDMA_offset;
515 uint8_t TN;
516 uint8_t TSC;
518 uint8_t UnionType;
519 union
521 SingleRFChannel_t SingleRFChannel;
522 RFHoppingChannel_t RFHoppingChannel;
523 } u;
524 } Channel_Description_t;
526 typedef struct
528 Channel_Description_t Channel_Description;
530 uint8_t Exist_Hopping;
531 MobileAllocation_or_Frequency_Short_List_t MA_or_Frequency_Short_List;
533 } Group_Channel_Description_t;
535 typedef struct
537 Group_Call_Reference_t Group_Call_Reference;
539 uint8_t Exist_Group_Channel_Description;
540 Group_Channel_Description_t Group_Channel_Description;
541 } Group_Call_information_t;
543 typedef struct
545 uint8_t Exist_NLN_PCH_and_NLN_status;
546 uint8_t NLN_PCH;
547 uint8_t NLN_status;
549 uint8_t Exist_Priority1;
550 uint8_t Priority1;
552 uint8_t Exist_Priority2;
553 uint8_t Priority2;
555 uint8_t Exist_Group_Call_information;
556 Group_Call_information_t Group_Call_information;
558 uint8_t Packet_Page_Indication_1;
559 uint8_t Packet_Page_Indication_2;
560 } P1_Rest_Octets_t;
562 typedef struct
564 uint8_t Exist_CN3;
565 uint8_t CN3;
567 uint8_t Exist_NLN_and_status;
568 uint8_t NLN;
569 uint8_t NLN_status;
571 uint8_t Exist_Priority1;
572 uint8_t Priority1;
574 uint8_t Exist_Priority2;
575 uint8_t Priority2;
577 uint8_t Exist_Priority3;
578 uint8_t Priority3;
580 uint8_t Packet_Page_Indication_3;
581 } P2_Rest_Octets_t;
583 /* <IA Rest Octets> incl additions for R99 and EGPRS */
585 typedef struct
587 uint8_t USF;
588 uint8_t USF_GRANULARITY;
590 uint8_t Exist_P0_PR_MODE;
591 uint8_t P0;
592 uint8_t PR_MODE;
593 } DynamicAllocation_t;
595 typedef struct
597 bool Exist_ALPHA;
598 uint8_t ALPHA;
600 uint8_t GAMMA;
601 StartingTime_t TBF_STARTING_TIME;
602 uint8_t NR_OF_RADIO_BLOCKS_ALLOCATED;
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;
608 } EGPRS_TwoPhaseAccess_t;
610 typedef struct
612 uint8_t TFI_ASSIGNMENT;
613 uint8_t POLLING;
615 uint8_t UnionType;
616 union
618 DynamicAllocation_t DynamicAllocation;
619 uint8_t FixedAllocationDummy; /* Fixed Allocation was removed */
620 } Allocation;
622 uint8_t EGPRS_CHANNEL_CODING_COMMAND;
623 uint8_t TLLI_BLOCK_CHANNEL_CODING;
625 bool Exist_BEP_PERIOD2;
626 uint8_t BEP_PERIOD2;
628 uint8_t RESEGMENT;
629 uint8_t EGPRS_WindowSize;
631 bool Exist_ALPHA;
632 uint8_t ALPHA;
634 uint8_t GAMMA;
636 bool Exist_TIMING_ADVANCE_INDEX;
637 uint8_t TIMING_ADVANCE_INDEX;
639 bool Exist_TBF_STARTING_TIME;
640 StartingTime_t TBF_STARTING_TIME;
641 } EGPRS_OnePhaseAccess_t;
643 #define MAX_ACCESS_TECHOLOGY_TYPES 12
645 typedef struct
647 uint8_t ExtendedRA;
649 uint8_t NrOfAccessTechnologies;
650 uint8_t AccessTechnologyType[MAX_ACCESS_TECHOLOGY_TYPES];
652 uint8_t UnionType;
653 union
655 EGPRS_TwoPhaseAccess_t TwoPhaseAccess; /* 04.18/10.5.2.16 Multiblock allocation */
656 EGPRS_OnePhaseAccess_t OnePhaseAccess; /* 04.60/10.5.2.16 TFI using Dynamic or Fixed Allocation */
657 } Access;
658 } IA_EGPRS_00_t;
660 typedef struct
662 uint8_t UnionType;
663 union
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;
671 typedef struct
673 uint8_t Length;
674 uint8_t MAIO;
675 uint8_t MobileAllocation[62];
676 } IA_FreqParamsBeforeTime_t;
678 typedef struct
680 bool Exist_ALPHA;
681 uint8_t ALPHA;
683 uint8_t GAMMA;
684 uint8_t R97_CompatibilityBits;
685 StartingTime_t TBF_STARTING_TIME;
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;
691 } GPRS_SingleBlockAllocation_t;
693 typedef struct
695 uint8_t TFI_ASSIGNMENT;
696 uint8_t POLLING;
698 uint8_t UnionType;
699 union
701 DynamicAllocation_t DynamicAllocation;
702 uint8_t FixedAllocationDummy;
703 } Allocation;
705 uint8_t CHANNEL_CODING_COMMAND;
706 uint8_t TLLI_BLOCK_CHANNEL_CODING;
708 uint8_t Exist_ALPHA;
709 uint8_t ALPHA;
711 uint8_t GAMMA;
713 uint8_t Exist_TIMING_ADVANCE_INDEX;
714 uint8_t TIMING_ADVANCE_INDEX;
716 uint8_t Exist_TBF_STARTING_TIME;
717 StartingTime_t TBF_STARTING_TIME;
718 } GPRS_DynamicOrFixedAllocation_t;
720 typedef struct
722 bool Exist_ExtendedRA;
723 uint8_t ExtendedRA;
724 } PU_IA_AdditionsR99_t;
726 typedef struct
728 uint8_t UnionType;
729 union
731 GPRS_SingleBlockAllocation_t SingleBlockAllocation;
732 GPRS_DynamicOrFixedAllocation_t DynamicOrFixedAllocation;
733 } Access;
735 bool Exist_AdditionsR99;
736 PU_IA_AdditionsR99_t AdditionsR99;
737 } Packet_Uplink_ImmAssignment_t;
739 typedef struct
741 uint8_t EGPRS_WindowSize;
742 uint8_t LINK_QUALITY_MEASUREMENT_MODE;
744 bool Exist_BEP_PERIOD2;
745 uint8_t BEP_PERIOD2;
746 } PD_IA_AdditionsR99_t;
748 typedef struct
750 uint32_t TLLI;
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;
761 uint8_t Exist_TIMING_ADVANCE_INDEX;
762 uint8_t TIMING_ADVANCE_INDEX;
764 uint8_t Exist_TBF_STARTING_TIME;
765 StartingTime_t TBF_STARTING_TIME;
767 uint8_t Exist_P0_PR_MODE;
768 uint8_t P0;
769 uint8_t BTS_PWR_CTRL_MODE;
770 uint8_t PR_MODE;
772 bool Exist_AdditionsR99;
773 PD_IA_AdditionsR99_t AdditionsR99;
774 } Packet_Downlink_ImmAssignment_t;
776 typedef struct
778 bool Exist_SecondPart;
780 bool Exist_ExtendedRA;
781 uint8_t ExtendedRA;
782 } Second_Part_Packet_Assignment_t;
784 typedef struct
786 uint8_t UnionType;
787 union
789 Packet_Uplink_ImmAssignment_t Packet_Uplink_ImmAssignment;
790 Packet_Downlink_ImmAssignment_t Packet_Downlink_ImmAssignment;
791 } ul_dl;
792 } IA_PacketAssignment_UL_DL_t;
794 typedef struct
796 uint8_t UnionType;
797 union
799 IA_PacketAssignment_UL_DL_t UplinkDownlinkAssignment;
800 Second_Part_Packet_Assignment_t Second_Part_Packet_Assignment;
801 } u;
802 } IA_PacketAssignment_t;
804 #if 0
805 typedef struct
807 uint8_t UnionType;
808 union
810 IA_FreqParamsBeforeTime_t IA_FrequencyParams;
811 IA_PacketAssignment_t IA_PacketAssignment;
812 } u;
813 } IA_GPRS_t;
815 typedef struct
817 uint8_t UnionType;
818 union
820 IA_EGPRS_t IA_EGPRS_Struct;
821 IA_GPRS_t IA_GPRS_Struct;
822 } u;
823 } IA_t;
826 /* <IAR Rest Octets> ref: 04.18/10.5.2.17 */
827 typedef struct
829 uint8_t Exist_ExtendedRA;
830 uint8_t ExtendedRA;
831 } ExtendedRA_Info_t;
833 typedef ExtendedRA_Info_t ExtendedRA_Info_Array_t[4];
835 typedef struct
837 ExtendedRA_Info_Array_t ExtendedRA_Info;
838 } IAR_t;
839 #endif
841 /* Packet Polling Request */
842 typedef struct
844 uint8_t UnionType;
845 union
847 Global_TFI_t Global_TFI;
848 uint32_t TLLI;
849 uint16_t TQI;
850 } u;
851 } PacketPollingID_t;
853 typedef struct
855 uint8_t MESSAGE_TYPE;
856 uint8_t PAGE_MODE;
857 PacketPollingID_t ID;
858 uint8_t TYPE_OF_ACK;
859 } Packet_Polling_Request_t;
861 /* < SI 13 Rest Octets > */
862 #define MAX_EXTENSION_LENGTH_IN_BYTES (8) /* max value = 64 (coded on 6 bits) */
864 typedef struct
866 uint8_t extension_length;
867 uint8_t Extension_Info[MAX_EXTENSION_LENGTH_IN_BYTES];/* ( val (extension length)+1 ) 04.60/12.26 */
868 } Extension_Bits_t;
870 #if 0
871 typedef struct
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;
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;
887 typedef struct
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;
899 typedef struct
901 uint8_t NotUsed : 7;
902 uint8_t EGPRS_Support : 1;
903 } EGPRS_Support_t;
905 typedef struct
907 uint8_t ECSC : 1;
908 uint8_t ECSR_3G : 1;
909 } NonGPRS_ExtensionInfo_t;
911 typedef struct
913 uint8_t Extension_Length;
914 union
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;
924 typedef struct
926 bool EGPRS_Support;
927 uint8_t BEP_PERIOD;
928 bool EGPRS_PACKET_CHANNEL_REQUEST;
929 } EGPRS_OptionalExtensionInformation_t;
930 #endif
932 typedef struct
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;
942 uint8_t Exist_PAN;
943 uint8_t PAN_DEC;
944 uint8_t PAN_INC;
945 uint8_t PAN_MAX;
947 uint8_t Exist_Extension_Bits;
948 Extension_Bits_t Extension_Bits;
949 } GPRS_Cell_Options_t;
951 typedef struct
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;
958 } GPRS_Power_Control_Parameters_t;
960 typedef struct
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;
968 } PBCCH_Not_present_t;
970 typedef struct
972 uint8_t Pb;
973 uint8_t TSC;
974 uint8_t TN;
976 uint8_t UnionType;
977 union
979 uint8_t dummy;
980 uint16_t ARFCN;
981 uint8_t MAIO;
982 } u;
983 } PBCCH_Description_t;
985 typedef struct
987 uint8_t PSI1_REPEAT_PERIOD;
988 PBCCH_Description_t PBCCH_Description;
989 } PBCCH_present_t;
993 /* < Packet TBF Release message content > */
994 typedef 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
1000 typedef struct
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;
1008 } Packet_TBF_Release_t;
1010 /* < Packet Control Acknowledgement message content > */
1011 typedef struct
1013 uint8_t Exist_CTRL_ACK_Extension;
1014 uint16_t CTRL_ACK_Extension;
1015 } Packet_Control_Acknowledgement_AdditionsR6_t;
1017 typedef struct
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;
1024 Packet_Control_Acknowledgement_AdditionsR6_t AdditionsR6;
1025 } Packet_Control_Acknowledgement_AdditionsR5_t;
1027 typedef struct
1028 { /* Mac header */
1029 uint8_t MESSAGE_TYPE;
1030 uint8_t PayloadType;
1031 uint8_t spare;
1032 uint8_t R;
1034 uint32_t TLLI;
1035 uint8_t CTRL_ACK;
1036 bool Exist_AdditionsR5;
1037 Packet_Control_Acknowledgement_AdditionsR5_t AdditionsR5;
1038 } Packet_Control_Acknowledgement_t;
1040 typedef Packet_Control_Acknowledgement_t Packet_Ctrl_Ack_t;
1042 #if 0
1043 typedef struct
1045 uint8_t CTRL_ACK;
1046 } Packet_Control_Acknowledgement_11_bit_t, Packet_Control_Acknowledgement_8_bit_t;
1047 #endif
1049 /* < Packet Downlink Dummy Control Block message content > */
1050 typedef struct
1052 uint8_t MESSAGE_TYPE;
1053 uint8_t PAGE_MODE;
1055 uint8_t Exist_PERSISTENCE_LEVEL;
1056 uint8_t PERSISTENCE_LEVEL[4];
1057 } Packet_Downlink_Dummy_Control_Block_t;
1059 /* < Packet Uplink Dummy Control Block message content > */
1060 typedef struct
1061 { /* Mac header */
1062 uint8_t MESSAGE_TYPE;
1063 uint8_t PayloadType;
1064 uint8_t spare;
1065 uint8_t R;
1067 uint32_t TLLI;
1068 } Packet_Uplink_Dummy_Control_Block_t;
1070 /* MS Radio Access capability IE >
1071 * 24.008 (10.5.5.12a)
1073 typedef 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 */
1075 typedef struct
1077 uint8_t Exist_DTM_EGPRS_multislot_class;
1078 uint8_t DTM_EGPRS_multislot_class;
1079 } DTM_EGPRS_t;
1081 typedef struct
1083 uint8_t Exist_DTM_EGPRS_HighMultislotClass;
1084 uint8_t DTM_EGPRS_HighMultislotClass;
1085 } DTM_EGPRS_HighMultislotClass_t;
1087 typedef struct
1089 uint8_t MultislotCapabilityReductionForDL_DualCarrier;
1090 uint8_t DL_DualCarrierForDTM;
1091 } DownlinkDualCarrierCapability_r7_t;
1093 typedef struct
1095 uint8_t Exist_HSCSD_multislot_class;
1096 uint8_t HSCSD_multislot_class;
1098 uint8_t Exist_GPRS_multislot_class;
1099 uint8_t GPRS_multislot_class;
1100 uint8_t GPRS_Extended_Dynamic_Allocation_Capability;
1102 uint8_t Exist_SM;
1103 uint8_t SMS_VALUE;
1104 uint8_t SM_VALUE;
1106 /*-------- Rel 99 additions */
1107 uint8_t Exist_ECSD_multislot_class;
1108 uint8_t ECSD_multislot_class;
1110 uint8_t Exist_EGPRS_multislot_class;
1111 uint8_t EGPRS_multislot_class;
1112 uint8_t EGPRS_Extended_Dynamic_Allocation_Capability;
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;
1118 } Multislot_capability_t;
1120 typedef struct
1122 uint8_t RF_Power_Capability;
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.
1130 uint8_t ES_IND;
1131 uint8_t PS;
1132 uint8_t VGCS;
1133 uint8_t VBS;
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.
1140 /* -------- Rel 99 additions */
1141 uint8_t Exist_Eight_PSK_Power_Capability;
1142 uint8_t Eight_PSK_Power_Capability;
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;
1150 /* -------- R4 additions */
1151 uint8_t UMTS_128_TDD_Radio_Access_Technology_Capability;
1152 uint8_t GERAN_Feature_Package_1;
1154 uint8_t Exist_Extended_DTM_multislot_class;
1155 uint8_t Extended_DTM_GPRS_multislot_class;
1156 uint8_t Extended_DTM_EGPRS_multislot_class;
1158 uint8_t Modulation_based_multislot_class_support;
1160 /* -------- R5 additions */
1161 uint8_t Exist_HighMultislotCapability;
1162 uint8_t HighMultislotCapability;
1164 uint8_t Exist_GERAN_lu_ModeCapability;
1165 uint8_t GERAN_lu_ModeCapability;
1167 uint8_t GMSK_MultislotPowerProfile;
1168 uint8_t EightPSK_MultislotProfile;
1170 /* -------- R6 additions */
1171 uint8_t MultipleTBF_Capability;
1172 uint8_t DownlinkAdvancedReceiverPerformance;
1173 uint8_t ExtendedRLC_MAC_ControlMessageSegmentionsCapability;
1174 uint8_t DTM_EnhancementsCapability;
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;
1181 /* -------- R7 additions */
1182 uint8_t DTM_Handover_Capability;
1183 uint8_t Exist_DownlinkDualCarrierCapability_r7;
1184 DownlinkDualCarrierCapability_r7_t DownlinkDualCarrierCapability_r7;
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;
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;
1199 } Content_t;
1201 typedef enum
1202 {/* See TS 24.008 table 10.5.146 */
1203 AccTech_GSMP = 0x0,
1204 AccTech_GSME = 0x1,
1205 AccTech_GSMR = 0x2,
1206 AccTech_GSM1800 = 0x3,
1207 AccTech_GSM1900 = 0x4,
1208 AccTech_GSM450 = 0x5,
1209 AccTech_GSM480 = 0x6,
1210 AccTech_GSM850 = 0x7,
1211 AccTech_GSM750 = 0x8,
1212 AccTech_GSMT830 = 0x9,
1213 AccTech_GSMT410 = 0xa,
1214 AccTech_GSMT900 = 0xb,
1215 AccTech_GSM710 = 0xc,
1216 AccTech_GSMT810 = 0xd,
1217 AccTech_GSMOther = 0xf
1218 } AccessTechnology_t;
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
1224 typedef struct
1226 AccessTechnology_t Access_Technology_Type;
1227 uint8_t GMSK_Power_class;
1228 uint8_t Eight_PSK_Power_class;
1229 } Additional_access_technologies_struct_t;
1231 typedef struct
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];
1237 } Additional_access_technologies_t;
1239 typedef struct
1241 uint8_t IndexOfAccTech; /* Position in AccessTechnology_t */
1242 union
1244 /* Long Form */
1245 Content_t Content;
1246 /* Short Form */
1247 Additional_access_technologies_t Additional_access_technologies;
1248 } u;
1249 } MS_RA_capability_value_t;
1251 typedef struct
1253 uint8_t Count_MS_RA_capability_value; /* Recursive */
1254 MS_RA_capability_value_t MS_RA_capability_value[MAX_ACCESS_TECHNOLOGIES_COUNT];
1255 } MS_Radio_Access_capability_t;
1258 typedef struct
1260 uint8_t ExistEDGE_RF_PwrCap1;
1261 uint8_t EDGE_RF_PwrCap1;
1262 uint8_t ExistEDGE_RF_PwrCap2;
1263 uint8_t EDGE_RF_PwrCap2;
1264 } EDGE_RF_Pwr_t;
1266 typedef struct
1268 uint8_t A5_Bits;
1269 uint8_t Arc2_Spare;
1270 uint8_t Arc1;
1271 } ARC_t;
1273 typedef struct
1275 uint8_t Multiband;
1276 union
1278 uint8_t A5_Bits;
1279 ARC_t ARC;
1280 } u;
1281 } Multiband_t;
1283 typedef struct /* MS classmark 3 R99 */
1285 uint8_t Spare1;
1286 Multiband_t Multiband;
1288 uint8_t Exist_R_Support;
1289 uint8_t R_GSM_Arc;
1291 uint8_t Exist_MultiSlotCapability;
1292 uint8_t MultiSlotClass;
1294 uint8_t UCS2;
1295 uint8_t ExtendedMeasurementCapability;
1297 uint8_t Exist_MS_MeasurementCapability;
1298 uint8_t SMS_VALUE;
1299 uint8_t SM_VALUE;
1301 uint8_t Exist_MS_PositioningMethodCapability;
1302 uint8_t MS_PositioningMethod;
1304 uint8_t Exist_EDGE_MultiSlotCapability;
1305 uint8_t EDGE_MultiSlotClass;
1307 uint8_t Exist_EDGE_Struct;
1308 uint8_t ModulationCapability;
1309 EDGE_RF_Pwr_t EDGE_RF_PwrCaps;
1311 uint8_t Exist_GSM400_Info;
1312 uint8_t GSM400_Bands;
1313 uint8_t GSM400_Arc;
1315 uint8_t Exist_GSM850_Arc;
1316 uint8_t GSM850_Arc;
1318 uint8_t Exist_PCS1900_Arc;
1319 uint8_t PCS1900_Arc;
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;
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;
1330 /* -------- R4 additions */
1331 uint8_t Exist_SingleBandSupport;
1332 uint8_t GSM_Band;
1334 uint8_t Exist_GSM_700_Associated_Radio_Capability;
1335 uint8_t GSM_700_Associated_Radio_Capability;
1337 uint8_t UMTS_128_TDD_Radio_Access_Technology_Capability;
1338 uint8_t GERAN_Feature_Package_1;
1340 uint8_t Exist_Extended_DTM_multislot_class;
1341 uint8_t Extended_DTM_GPRS_multislot_class;
1342 uint8_t Extended_DTM_EGPRS_multislot_class;
1344 /* -------- R5 additions */
1345 uint8_t Exist_HighMultislotCapability;
1346 uint8_t HighMultislotCapability;
1348 uint8_t Exist_GERAN_lu_ModeCapability;
1349 uint8_t GERAN_lu_ModeCapability;
1351 uint8_t GERAN_FeaturePackage_2;
1353 uint8_t GMSK_MultislotPowerProfile;
1354 uint8_t EightPSK_MultislotProfile;
1356 /* -------- R6 additions */
1357 uint8_t Exist_TGSM_400_Bands;
1358 uint8_t TGSM_400_BandsSupported;
1359 uint8_t TGSM_400_AssociatedRadioCapability;
1361 uint8_t Exist_TGSM_900_AssociatedRadioCapability;
1362 uint8_t TGSM_900_AssociatedRadioCapability;
1364 uint8_t DownlinkAdvancedReceiverPerformance;
1365 uint8_t DTM_EnhancementsCapability;
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;
1373 uint8_t Spare2;
1374 } MS_Class3_Unpacked_t;
1377 /* < Packet Resource Request message content > */
1378 typedef struct
1380 bool Exist;
1381 uint8_t UnionType;
1382 union
1384 uint8_t MEAN_BEP_GMSK;
1385 uint8_t MEAN_BEP_8PSK;
1386 } u;
1387 } BEP_MeasurementReport_t;
1389 typedef struct
1391 bool Exist;
1392 uint8_t I_LEVEL;
1393 } InterferenceMeasurementReport_t;
1395 typedef struct
1397 bool Exist_BEP_MEASUREMENTS;
1398 BEP_MeasurementReport_t BEP_MEASUREMENTS[8];
1400 bool Exist_INTERFERENCE_MEASUREMENTS;
1401 InterferenceMeasurementReport_t INTERFERENCE_MEASUREMENTS[8];
1402 } EGPRS_TimeslotLinkQualityMeasurements_t;
1404 typedef struct
1406 bool Exist_MEAN_CV_BEP_GMSK;
1407 uint8_t MEAN_BEP_GMSK;
1408 uint8_t CV_BEP_GMSK;
1410 bool Exist_MEAN_CV_BEP_8PSK;
1411 uint8_t MEAN_BEP_8PSK;
1412 uint8_t CV_BEP_8PSK;
1413 } EGPRS_BEP_LinkQualityMeasurements_t;
1415 typedef struct{
1416 uint8_t RB_ID;
1417 uint8_t RADIO_PRIORITY;
1419 bool Exist_RLC_BLOCK_COUNT;
1420 uint8_t RLC_BLOCK_COUNT;
1422 bool Exist_Iu_Mode_ChRequestDesk;
1423 //IU_Mode_Channel_Request_Desk_t IU_Mode_Channel_Request_Desk1;
1425 }IU_Mode_Channel_Request_Desk_t;
1427 typedef 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;
1432 }IU_Mode_Channel_Request_Desk_RNTI_t;
1434 typedef struct{
1435 uint8_t PFI;
1436 uint8_t RADIO_PRIORITY;
1437 uint8_t RLC_Mode;
1439 bool Exist_LCC_PDU;
1440 uint8_t LCC_PDU;
1442 bool Exist_Ext_Channel_Request_desc;
1444 }Ext_Channel_Request_desc_t;
1447 typedef struct{
1448 bool Exist_GMSK_MEAN_BEP;
1449 uint8_t GMSK_MEAN_BEP;
1450 uint8_t GMSK_CV_BEP;
1452 bool Exist_8PSK_MEAN_BEP;
1453 uint8_t p8PSK_MEAN_BEP;
1454 uint8_t p8PSK_CV_BEP;
1456 bool Exist_QPSK_MEAN_BEP;
1457 uint8_t QPSK_MEAN_BEP;
1458 uint8_t QPSK_CV_BEP;
1460 bool Exist_16QAM_NSR_MEAN_BEP;
1461 uint8_t p16QAM_NSR_MEAN_BEP;
1462 uint8_t p16QAM_NSR_CV_BEP;
1464 bool Exist_32QAM_NSR_MEAN_BEP;
1465 uint8_t p32QAM_NSR_MEAN_BEP;
1466 uint8_t p32QAM_NSR_CV_BEP;
1468 bool Exist_16QAM_HSR_MEAN_BEP;
1469 uint8_t p16QAM_HSR_MEAN_BEP;
1470 uint8_t p16QAM_HSR_CV_BEP;
1472 bool Exist_32QAM_HSR_MEAN_BEP;
1473 uint8_t p32QAM_HSR_MEAN_BEP;
1474 uint8_t p32QAM_HSR_CV_BEP;
1476 }EGPRS_BEP_LinkQualityMeasurements_type2_t;
1478 typedef struct
1480 bool Exist;
1481 uint8_t REPORTED_MODULATION;
1482 uint8_t MEAN_BEP_TN;
1484 }BEP_MeasurementReport_type2_t;
1486 typedef struct
1488 bool Exist;
1489 uint8_t I_LEVEL;
1490 }InterferenceMeasurementReport_type2_t;
1492 typedef struct
1494 bool Exist_BEP_MEASUREMENTS;
1495 BEP_MeasurementReport_type2_t BEP_MEASUREMENTS[8];
1497 bool Exist_INTERFERENCE_MEASUREMENTS;
1498 InterferenceMeasurementReport_type2_t INTERFERENCE_MEASUREMENTS[8];
1500 }EGPRS_TimeslotLinkQualityMeasurements_type2_t;
1503 typedef struct
1505 bool Exist_Downlink_eTFI;
1506 uint8_t DOWNLINK_ETFI;
1508 }PRR_AdditionsR12_t;
1510 typedef struct
1512 uint8_t LOW_ACCESS_PRIORITY_SIGNALLING;
1514 bool Exist_AdditionsR12;
1515 PRR_AdditionsR12_t AdditionsR12;
1517 }PRR_AdditionsR10_t;
1519 typedef struct
1521 uint8_t EARLY_TBF_ESTABLISHMENT;
1523 bool Exist_EGPRS_BEP_LinkQualityMeasurements_type2;
1524 EGPRS_BEP_LinkQualityMeasurements_type2_t EGPRS_BEP_LinkQualityMeasurements_type2;
1526 bool Exist_EGPRS_TimeslotLinkQualityMeasurements_type2;
1527 EGPRS_TimeslotLinkQualityMeasurements_type2_t EGPRS_TimeslotLinkQualityMeasurements_type2;
1529 bool Exist_AdditionsR10;
1530 PRR_AdditionsR10_t AdditionsR10;
1532 }PRR_AdditionsR7_t;
1534 typedef struct
1536 bool Exist_Ext_Channel_Request_desc;
1537 Ext_Channel_Request_desc_t Ext_Channel_Request_desc;
1539 uint8_t Exist_AdditionsR7;
1540 PRR_AdditionsR7_t AdditionsR7;
1542 } PRR_AdditionsR6_t;
1544 typedef struct
1546 uint8_t Exist_Iu_Mode_ChRequestDesk;
1547 IU_Mode_Channel_Request_Desk_RNTI_t IU_Mode_Channel_Request_Desk_RNTI;
1549 uint8_t Exist_HFN_LSB;
1550 uint8_t HFN_LSb;
1552 uint8_t Exist_AdditionsR6;
1553 PRR_AdditionsR6_t AdditionsR6;
1555 }PRR_AdditionsR5_t;
1557 typedef struct
1559 bool Exist_EGPRS_BEP_LinkQualityMeasurements;
1560 EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1562 bool Exist_EGPRS_TimeslotLinkQualityMeasurements;
1563 EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1565 bool Exist_PFI;
1566 uint8_t PFI;
1568 uint8_t MS_RAC_AdditionalInformationAvailable;
1569 uint8_t RetransmissionOfPRR;
1571 uint8_t Exist_AdditionsR5;
1572 PRR_AdditionsR5_t AdditionsR5;
1573 } PRR_AdditionsR99_t;
1575 typedef struct
1577 uint8_t UnionType;
1578 union
1580 Global_TFI_t Global_TFI;
1581 uint32_t TLLI;
1582 } u;
1583 } PacketResourceRequestID_t;
1585 typedef struct
1587 uint8_t MESSAGE_TYPE;
1588 uint8_t PayloadType;
1589 uint8_t spare;
1590 uint8_t R;
1592 uint8_t Exist_ACCESS_TYPE;
1593 uint8_t ACCESS_TYPE;
1595 PacketResourceRequestID_t ID;
1597 uint8_t Exist_MS_Radio_Access_capability2;
1598 MS_Radio_Access_capability_t MS_Radio_Access_capability2;
1600 Channel_Request_Description_t Channel_Request_Description;
1602 uint8_t Exist_CHANGE_MARK;
1603 uint8_t CHANGE_MARK;
1605 uint8_t C_VALUE;
1607 uint8_t Exist_SIGN_VAR;
1608 uint8_t SIGN_VAR;
1610 InterferenceMeasurementReport_t I_LEVEL_TN[8];
1612 uint8_t Exist_AdditionsR99;
1613 PRR_AdditionsR99_t AdditionsR99;
1614 } Packet_Resource_Request_t;
1616 /* < Packet Mobile TBF Status message content >*/
1617 typedef struct
1619 uint8_t MESSAGE_TYPE;
1620 uint8_t PayloadType;
1621 uint8_t spare;
1622 uint8_t R;
1624 Global_TFI_t Global_TFI;
1625 uint8_t TBF_CAUSE;
1627 uint8_t Exist_STATUS_MESSAGE_TYPE;
1628 uint8_t STATUS_MESSAGE_TYPE;
1629 } Packet_Mobile_TBF_Status_t;
1631 /* < Packet PSI Status message content >*/
1632 typedef struct
1634 uint8_t PSI_MESSAGE_TYPE;
1635 uint8_t PSIX_CHANGE_MARK;
1636 uint8_t Exist_PSIX_COUNT_and_Instance_Bitmap;
1637 } PSI_Message_t;
1639 typedef struct
1641 uint8_t Count_PSI_Message;
1642 PSI_Message_t PSI_Message[10];
1644 uint8_t ADDITIONAL_MSG_TYPE;
1645 } PSI_Message_List_t;
1647 typedef struct
1649 uint8_t ADDITIONAL_MSG_TYPE;
1650 } Unknown_PSI_Message_List_t;
1652 typedef struct
1654 uint8_t MESSAGE_TYPE;
1655 uint8_t PayloadType;
1656 uint8_t spare;
1657 uint8_t R;
1659 Global_TFI_t Global_TFI;
1660 uint8_t PBCCH_CHANGE_MARK;
1662 PSI_Message_List_t PSI_Message_List;
1663 Unknown_PSI_Message_List_t Unknown_PSI_Message_List;
1664 } Packet_PSI_Status_t;
1666 /* < Packet SI Status message content > */
1667 typedef struct
1669 uint8_t SI_MESSAGE_TYPE;
1670 uint8_t MESS_REC;
1671 uint8_t SIX_CHANGE_MARK;
1673 uint8_t SIX_COUNT;
1674 uint8_t Instance_bitmap[2];
1675 } SI_Message_t;
1677 typedef struct
1679 uint8_t Count_SI_Message;
1680 SI_Message_t SI_Message[10];
1682 uint8_t ADDITIONAL_MSG_TYPE;
1683 } SI_Message_List_t;
1685 typedef struct
1687 uint8_t ADDITIONAL_MSG_TYPE;
1688 } Unknown_SI_Message_List_t;
1690 typedef struct
1692 uint8_t MESSAGE_TYPE;
1693 uint8_t PayloadType;
1694 uint8_t spare;
1695 uint8_t R;
1697 Global_TFI_t Global_TFI;
1698 uint8_t BCCH_CHANGE_MARK;
1700 SI_Message_List_t SI_Message_List;
1701 Unknown_SI_Message_List_t Unknown_SI_Message_List;
1702 } Packet_SI_Status_t;
1704 typedef struct
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;
1711 } FDD_Target_Cell_t;
1713 typedef struct
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;
1721 } TDD_Target_Cell_t;
1723 typedef struct
1725 uint16_t EARFCN;
1726 uint8_t Exist_Measurement_Bandwidth;
1727 uint8_t Measurement_Bandwidth;
1728 uint16_t Physical_Layer_Cell_Identity;
1729 } EUTRAN_Target_Cell_t;
1731 typedef struct
1733 uint32_t UTRAN_CI;
1734 uint8_t Exist_PLMN_ID;
1735 PLMN_t PLMN_ID;
1736 } UTRAN_CSG_Target_Cell_t;
1738 typedef struct
1740 uint32_t EUTRAN_CI;
1741 uint16_t Tracking_Area_Code;
1742 uint8_t Exist_PLMN_ID;
1743 PLMN_t PLMN_ID;
1744 } EUTRAN_CSG_Target_Cell_t;
1746 typedef struct
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;
1752 } PCCF_AdditionsR9_t;
1754 typedef struct
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;
1760 } PCCF_AdditionsR8_t;
1762 typedef struct
1764 uint8_t Exist_G_RNTI_extention;
1765 uint8_t G_RNTI_extention;
1766 uint8_t Exist_AdditionsR8;
1767 PCCF_AdditionsR8_t AdditionsR8;
1768 } PCCF_AdditionsR5_t;
1770 typedef struct
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;
1778 } PCCF_AdditionsR99_t;
1780 /* < Packet Cell Change Failure message content > */
1781 typedef struct
1783 uint8_t MESSAGE_TYPE;
1784 uint8_t PayloadType;
1785 uint8_t spare;
1786 uint8_t R;
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;
1794 } Packet_Cell_Change_Failure_t;
1796 /* < Packet Downlink Ack/Nack message content > */
1797 typedef struct
1799 bool Exist_PFI;
1800 uint8_t PFI;
1801 } PD_AckNack_AdditionsR99_t;
1803 typedef struct
1805 uint8_t MESSAGE_TYPE;
1806 uint8_t PayloadType;
1807 uint8_t spare;
1808 uint8_t R;
1810 uint8_t DOWNLINK_TFI;
1811 Ack_Nack_Description_t Ack_Nack_Description;
1813 uint8_t Exist_Channel_Request_Description;
1814 Channel_Request_Description_t Channel_Request_Description;
1816 Channel_Quality_Report_t Channel_Quality_Report;
1818 bool Exist_AdditionsR99;
1819 PD_AckNack_AdditionsR99_t AdditionsR99;
1820 } Packet_Downlink_Ack_Nack_t;
1822 /* < EGPRS Packet Downlink Ack/Nack message content > */
1823 typedef struct
1825 EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1826 uint8_t C_VALUE;
1827 EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1828 } EGPRS_ChannelQualityReport_t;
1830 typedef struct
1832 uint8_t MESSAGE_TYPE;
1833 uint8_t PayloadType;
1834 uint8_t spare;
1835 uint8_t R;
1837 uint8_t DOWNLINK_TFI;
1838 uint8_t MS_OUT_OF_MEMORY;
1840 bool Exist_EGPRS_ChannelQualityReport;
1841 EGPRS_ChannelQualityReport_t EGPRS_ChannelQualityReport;
1843 bool Exist_ChannelRequestDescription;
1844 Channel_Request_Description_t ChannelRequestDescription;
1846 bool Exist_PFI;
1847 uint8_t PFI;
1849 bool Exist_ExtensionBits;
1850 Extension_Bits_t ExtensionBits;
1852 EGPRS_AckNack_t EGPRS_AckNack;
1853 } EGPRS_PD_AckNack_t;
1855 /* < Packet Uplink Ack/Nack message content 04.60 sec.11.2.28 > */
1857 typedef struct
1859 uint8_t Exist_CONTENTION_RESOLUTION_TLLI;
1860 uint32_t CONTENTION_RESOLUTION_TLLI;
1862 uint8_t Exist_Packet_Timing_Advance;
1863 Packet_Timing_Advance_t Packet_Timing_Advance;
1865 uint8_t Exist_Extension_Bits;
1866 Extension_Bits_t Extension_Bits;
1868 uint8_t Exist_Power_Control_Parameters;
1869 Power_Control_Parameters_t Power_Control_Parameters;
1870 } Common_Uplink_Ack_Nack_Data_t;
1872 typedef struct
1874 bool Exist_PacketExtendedTimingAdvance;
1875 uint8_t PacketExtendedTimingAdvance;
1876 uint8_t TBF_EST;
1877 } PU_AckNack_GPRS_AdditionsR99_t;
1879 /* Table 11.2.28.1: PACKET UPLINK ACK/NACK information elements */
1880 typedef struct
1882 uint8_t Error;
1883 /* Fixed Allocation Parameters was removed from specs.
1884 * TODO: implement for old versions of spec.
1886 } Fixed_Allocation_Parameters_t;
1888 typedef struct
1890 uint8_t CHANNEL_CODING_COMMAND;
1891 Ack_Nack_Description_t Ack_Nack_Description;
1893 bool Exist_Fixed_Allocation_Parameters;
1894 Fixed_Allocation_Parameters_t Fixed_Allocation_Parameters;
1896 bool Exist_AdditionsR99;
1897 PU_AckNack_GPRS_AdditionsR99_t AdditionsR99;
1899 Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1900 } PU_AckNack_GPRS_t;
1902 typedef struct
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;
1910 uint8_t TBF_EST;
1912 bool Exist_Packet_Extended_Timing_Advance;
1913 uint8_t Packet_Extended_Timing_Advance;
1915 EGPRS_AckNack_t EGPRS_AckNack;
1918 Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1919 } PU_AckNack_EGPRS_00_t;
1921 typedef struct
1923 uint8_t UnionType;
1924 union
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;
1931 } PU_AckNack_EGPRS_t;
1933 #if 0
1934 enum PUAN_Type
1936 PUAN_GPRS,
1937 PUAN_EGPRS
1939 #endif
1941 typedef struct
1943 uint8_t MESSAGE_TYPE;
1944 uint8_t PAGE_MODE;
1945 uint8_t UPLINK_TFI;
1947 uint8_t UnionType;
1948 union
1950 PU_AckNack_GPRS_t PU_AckNack_GPRS_Struct;
1951 PU_AckNack_EGPRS_t PU_AckNack_EGPRS_Struct;
1952 } u;
1953 } Packet_Uplink_Ack_Nack_t;
1955 /* < Packet Uplink Assignment message content > */
1956 typedef struct
1958 uint8_t CHANGE_MARK_1;
1959 uint8_t Exist_CHANGE_MARK_2;
1960 uint8_t CHANGE_MARK_2;
1961 } CHANGE_MARK_t;
1963 typedef struct
1965 uint8_t MAIO;
1966 uint8_t MA_NUMBER;
1968 uint8_t Exist_CHANGE_MARK;
1969 CHANGE_MARK_t CHANGE_MARK;
1970 } Indirect_encoding_t;
1972 typedef struct
1974 uint8_t MAIO;
1975 GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
1976 } Direct_encoding_1_t;
1978 typedef struct
1980 uint8_t MAIO;
1981 uint8_t HSN;
1982 uint8_t Length_of_MA_Frequency_List;
1983 uint8_t MA_Frequency_List[15+3];
1984 } Direct_encoding_2_t;
1986 typedef struct
1988 uint8_t TSC;
1989 uint8_t UnionType;
1990 union
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;
1997 } Frequency_Parameters_t;
1999 typedef struct
2001 uint8_t Exist;
2002 uint8_t USF_TN;
2003 } Timeslot_Allocation_t;
2005 typedef struct
2007 uint8_t ALPHA;
2009 struct
2011 uint8_t Exist;
2012 uint8_t USF_TN;
2013 uint8_t GAMMA_TN;
2014 } Slot[8];
2015 } Timeslot_Allocation_Power_Ctrl_Param_t;
2017 typedef struct
2019 uint8_t Extended_Dynamic_Allocation;
2021 uint8_t Exist_P0;
2022 uint8_t P0;
2023 uint8_t PR_MODE;
2025 uint8_t USF_GRANULARITY;
2027 uint8_t Exist_UPLINK_TFI_ASSIGNMENT;
2028 uint8_t UPLINK_TFI_ASSIGNMENT;
2030 uint8_t Exist_RLC_DATA_BLOCKS_GRANTED;
2031 uint8_t RLC_DATA_BLOCKS_GRANTED;
2033 uint8_t Exist_TBF_Starting_Time;
2034 Starting_Frame_Number_t TBF_Starting_Time;
2036 uint8_t UnionType;
2037 union
2039 Timeslot_Allocation_t Timeslot_Allocation[8];
2040 Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
2041 } u;
2042 } Dynamic_Allocation_t;
2044 typedef struct
2046 uint8_t Extended_Dynamic_Allocation;
2048 uint8_t Exist_P0;
2049 uint8_t P0;
2050 uint8_t PR_MODE;
2052 uint8_t USF_GRANULARITY;
2054 uint8_t Exist_UPLINK_TFI_ASSIGNMENT;
2055 uint8_t UPLINK_TFI_ASSIGNMENT;
2057 uint8_t Exist_RLC_DATA_BLOCKS_GRANTED;
2058 uint8_t RLC_DATA_BLOCKS_GRANTED;
2060 uint8_t UnionType;
2061 union
2063 Timeslot_Allocation_t Timeslot_Allocation[8];
2064 Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
2065 } u;
2066 } DTM_Dynamic_Allocation_t;
2068 typedef struct
2070 uint8_t TIMESLOT_NUMBER;
2072 uint8_t Exist_ALPHA_and_GAMMA_TN;
2073 uint8_t ALPHA;
2074 uint8_t GAMMA_TN;
2076 uint8_t Exist_P0;
2077 uint8_t P0;
2078 uint8_t BTS_PWR_CTRL_MODE;
2079 uint8_t PR_MODE;
2081 Starting_Frame_Number_t TBF_Starting_Time;
2082 } Single_Block_Allocation_t;
2084 typedef struct
2086 uint8_t TIMESLOT_NUMBER;
2088 uint8_t Exist_ALPHA_and_GAMMA_TN;
2089 uint8_t ALPHA;
2090 uint8_t GAMMA_TN;
2092 uint8_t Exist_P0;
2093 uint8_t P0;
2094 uint8_t BTS_PWR_CTRL_MODE;
2095 uint8_t PR_MODE;
2097 } DTM_Single_Block_Allocation_t;
2099 typedef struct
2101 uint8_t UnionType;
2102 union
2104 Global_TFI_t Global_TFI;
2105 uint32_t TLLI;
2106 uint16_t TQI;
2107 Packet_Request_Reference_t Packet_Request_Reference;
2108 } u;
2109 } PacketUplinkID_t;
2111 typedef struct
2113 bool Exist_Packet_Extended_Timing_Advance;
2114 uint8_t Packet_Extended_Timing_Advance;
2115 } PUA_GPRS_AdditionsR99_t;
2117 typedef struct
2119 uint8_t CHANNEL_CODING_COMMAND;
2120 uint8_t TLLI_BLOCK_CHANNEL_CODING;
2121 Packet_Timing_Advance_t Packet_Timing_Advance;
2123 uint8_t Exist_Frequency_Parameters;
2124 Frequency_Parameters_t Frequency_Parameters;
2126 uint8_t UnionType;
2127 union
2129 uint8_t extension;
2130 Dynamic_Allocation_t Dynamic_Allocation;
2131 Single_Block_Allocation_t Single_Block_Allocation;
2132 uint8_t FixedAllocationDummy;
2133 } u;
2135 bool Exist_AdditionsR99;
2136 PUA_GPRS_AdditionsR99_t AdditionsR99;
2137 } PUA_GPRS_t;
2139 typedef struct
2141 uint8_t BitmapLength;
2142 uint8_t ReducedMA_Bitmap[127 / 8 + 1];
2144 bool Exist_MAIO_2;
2145 uint8_t MAIO_2;
2146 } COMPACT_ReducedMA_t;
2148 typedef struct
2150 uint8_t TIMESLOT_NUMBER;
2152 bool Exist_ALPHA_GAMMA_TN;
2153 uint8_t ALPHA;
2154 uint8_t GAMMA_TN;
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;
2161 Starting_Frame_Number_t TBF_Starting_Time;
2162 uint8_t NUMBER_OF_RADIO_BLOCKS_ALLOCATED;
2163 } MultiBlock_Allocation_t;
2165 typedef struct
2167 bool Exist_CONTENTION_RESOLUTION_TLLI;
2168 uint32_t CONTENTION_RESOLUTION_TLLI;
2170 bool Exist_COMPACT_ReducedMA;
2171 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2173 uint8_t EGPRS_CHANNEL_CODING_COMMAND;
2174 uint8_t RESEGMENT;
2175 uint8_t EGPRS_WindowSize;
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 */
2180 uint8_t ARAC_RETRANSMISSION_REQUEST;
2181 uint8_t TLLI_BLOCK_CHANNEL_CODING;
2183 bool Exist_BEP_PERIOD2;
2184 uint8_t BEP_PERIOD2;
2186 Packet_Timing_Advance_t PacketTimingAdvance;
2188 bool Exist_Packet_Extended_Timing_Advance;
2189 uint8_t Packet_Extended_Timing_Advance;
2191 bool Exist_Frequency_Parameters;
2192 Frequency_Parameters_t Frequency_Parameters;
2194 uint8_t UnionType;
2195 union
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;
2202 } PUA_EGPRS_00_t;
2204 typedef struct
2206 uint8_t UnionType;
2207 union
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;
2216 #if 0
2217 enum PUA_Type
2219 PUA_GPRS,
2220 PUA_EGPRS
2222 #endif
2224 typedef struct
2226 uint8_t MESSAGE_TYPE;
2227 uint8_t PAGE_MODE;
2229 uint8_t Exist_PERSISTENCE_LEVEL;
2230 uint8_t PERSISTENCE_LEVEL[4];
2232 PacketUplinkID_t ID;
2234 uint8_t UnionType;
2235 union
2237 PUA_GPRS_t PUA_GPRS_Struct;
2238 PUA_EGPRS_t PUA_EGPRS_Struct;
2239 } u;
2240 } Packet_Uplink_Assignment_t;
2243 /* < DTM Packet Uplink Assignment message content > */
2244 typedef struct
2246 uint8_t CHANNEL_CODING_COMMAND;
2247 uint8_t TLLI_BLOCK_CHANNEL_CODING;
2248 Packet_Timing_Advance_t Packet_Timing_Advance;
2250 uint8_t UnionType;
2251 union
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;
2263 } DTM_Packet_Uplink_Assignment_t;
2265 typedef struct
2267 DTM_Packet_Uplink_Assignment_t DTM_Packet_Uplink_Assignment;
2268 } DTM_UL_t;
2270 /* < DTM Packet Channel Request message content > */
2271 typedef struct
2273 uint8_t DTM_Pkt_Est_Cause;
2274 Channel_Request_Description_t Channel_Request_Description;
2275 bool Exist_PFI;
2276 uint8_t PFI;
2277 } DTM_Channel_Request_Description_t;
2279 /* < Packet Downlink Assignment message content > */
2280 typedef struct
2282 Starting_Frame_Number_t Measurement_Starting_Time;
2283 uint8_t MEASUREMENT_INTERVAL;
2284 uint8_t MEASUREMENT_BITMAP;
2285 } Measurement_Mapping_struct_t;
2287 typedef struct
2289 uint8_t UnionType;
2290 union
2292 Global_TFI_t Global_TFI;
2293 uint32_t TLLI;
2294 } u;
2295 } PacketDownlinkID_t;
2297 typedef struct
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;
2305 bool Exist_Packet_Extended_Timing_Advance;
2306 uint8_t Packet_Extended_Timing_Advance;
2308 bool Exist_COMPACT_ReducedMA;
2309 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2310 } PDA_AdditionsR99_t;
2312 typedef struct
2314 uint8_t MESSAGE_TYPE;
2315 uint8_t PAGE_MODE;
2317 bool Exist_PERSISTENCE_LEVEL;
2318 uint8_t PERSISTENCE_LEVEL[4];
2320 PacketDownlinkID_t ID;
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;
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;
2333 bool Exist_Frequency_Parameters;
2334 Frequency_Parameters_t Frequency_Parameters;
2336 bool Exist_DOWNLINK_TFI_ASSIGNMENT;
2337 uint8_t DOWNLINK_TFI_ASSIGNMENT;
2339 bool Exist_Power_Control_Parameters;
2340 Power_Control_Parameters_t Power_Control_Parameters;
2342 bool Exist_TBF_Starting_Time;
2343 Starting_Frame_Number_t TBF_Starting_Time;
2345 uint8_t Exist_Measurement_Mapping;
2346 Measurement_Mapping_struct_t Measurement_Mapping;
2348 bool Exist_AdditionsR99;
2349 PDA_AdditionsR99_t AdditionsR99;
2350 } Packet_Downlink_Assignment_t;
2352 /* < DTM Packet Downlink Assignment message content > */
2353 typedef struct
2355 uint8_t MAC_MODE;
2356 uint8_t RLC_MODE;
2357 uint8_t TIMESLOT_ALLOCATION;
2358 Packet_Timing_Advance_t Packet_Timing_Advance;
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;
2365 uint8_t Exist_Power_Control_Parameters;
2366 Power_Control_Parameters_t Power_Control_Parameters;
2368 uint8_t Exist_DOWNLINK_TFI_ASSIGNMENT;
2369 uint8_t DOWNLINK_TFI_ASSIGNMENT;
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;
2378 } DTM_Packet_Downlink_Assignment_t;
2380 typedef struct
2382 DTM_Packet_Downlink_Assignment_t DTM_Packet_Downlink_Assignment;
2383 } DTM_DL_t;
2385 typedef struct
2387 GPRS_Cell_Options_t GPRS_Cell_Options;
2388 GPRS_Power_Control_Parameters_t GPRS_Power_Control_Parameters;
2389 } DTM_GPRS_Broadcast_Information_t;
2391 typedef struct
2393 DTM_GPRS_Broadcast_Information_t DTM_GPRS_Broadcast_Information;
2394 } DTM_GPRS_B_t;
2396 /* < Packet Paging Request message content > */
2397 typedef struct
2399 uint8_t UnionType;
2400 union
2402 TMSI_t PTMSI;
2403 struct MobileId Mobile_Identity;
2404 } u;
2405 } Page_request_for_TBF_establishment_t;
2407 typedef struct
2409 uint8_t UnionType;
2410 union
2412 TMSI_t TMSI;
2413 struct MobileId Mobile_Identity;
2414 } u;
2416 uint8_t CHANNEL_NEEDED;
2418 uint8_t Exist_eMLPP_PRIORITY;
2419 uint8_t eMLPP_PRIORITY;
2420 } Page_request_for_RR_conn_t;
2422 typedef struct
2424 uint8_t UnionType;
2425 union
2427 Page_request_for_TBF_establishment_t Page_req_TBF;
2428 Page_request_for_RR_conn_t Page_req_RR;
2429 } u;
2430 } Repeated_Page_info_t;
2432 typedef struct
2434 uint8_t MESSAGE_TYPE;
2435 uint8_t PAGE_MODE;
2437 uint8_t Exist_PERSISTENCE_LEVEL;
2438 uint8_t PERSISTENCE_LEVEL[4];
2440 uint8_t Exist_NLN;
2441 uint8_t NLN;
2443 uint8_t Count_Repeated_Page_info;
2444 Repeated_Page_info_t Repeated_Page_info[5];
2445 } Packet_Paging_Request_t;
2447 typedef struct
2449 uint8_t MESSAGE_TYPE;
2450 uint8_t PAGE_MODE;
2452 uint8_t TIMESLOTS_AVAILABLE;
2453 } Packet_PDCH_Release_t;
2455 /* < Packet Power Control/Timing Advance message content > */
2456 typedef struct
2458 uint8_t UnionType;
2459 union
2461 Global_TFI_t Global_TFI;
2462 uint16_t TQI;
2463 Packet_Request_Reference_t Packet_Request_Reference;
2464 } u;
2465 } PacketPowerControlTimingAdvanceID_t;
2467 typedef struct
2469 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2470 Power_Control_Parameters_t Power_Control_Parameters;
2471 } GlobalTimingAndPower_t;
2473 typedef struct
2475 uint8_t UnionType;
2476 union
2478 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2479 Power_Control_Parameters_t Power_Control_Parameters;
2480 } u;
2481 } GlobalTimingOrPower_t;
2483 typedef struct
2485 uint8_t MESSAGE_TYPE;
2486 uint8_t PAGE_MODE;
2488 PacketPowerControlTimingAdvanceID_t ID;
2490 /* -- Message escape */
2491 uint8_t Exist_Global_Power_Control_Parameters;
2492 Global_Power_Control_Parameters_t Global_Power_Control_Parameters;
2494 uint8_t UnionType;
2495 union
2497 GlobalTimingAndPower_t GlobalTimingAndPower;
2498 GlobalTimingOrPower_t GlobalTimingOrPower;
2499 } u;
2500 } Packet_Power_Control_Timing_Advance_t;
2502 /* < Packet Queueing Notification message content > */
2503 typedef struct
2505 uint8_t MESSAGE_TYPE;
2506 uint8_t PAGE_MODE;
2508 /* 111 Fixed */
2509 Packet_Request_Reference_t Packet_Request_Reference;
2510 uint16_t TQI;
2511 } Packet_Queueing_Notification_t;
2513 /* < Packet Timeslot Reconfigure message content 04.60 sec. 11.2.31> */
2515 typedef Dynamic_Allocation_t TRDynamic_Allocation_t;
2517 typedef struct
2519 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2521 uint8_t DOWNLINK_RLC_MODE;
2522 uint8_t CONTROL_ACK;
2524 uint8_t Exist_DOWNLINK_TFI_ASSIGNMENT;
2525 uint8_t DOWNLINK_TFI_ASSIGNMENT;
2527 uint8_t Exist_UPLINK_TFI_ASSIGNMENT;
2528 uint8_t UPLINK_TFI_ASSIGNMENT;
2530 uint8_t DOWNLINK_TIMESLOT_ALLOCATION;
2532 uint8_t Exist_Frequency_Parameters;
2533 Frequency_Parameters_t Frequency_Parameters;
2534 } Common_Timeslot_Reconfigure_t;
2536 typedef struct
2538 bool Exist_Packet_Extended_Timing_Advance;
2539 uint8_t Packet_Extended_Timing_Advance;
2540 } PTR_GPRS_AdditionsR99_t;
2542 typedef struct
2544 uint8_t CHANNEL_CODING_COMMAND;
2546 Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2548 uint8_t UnionType;
2549 union
2551 TRDynamic_Allocation_t Dynamic_Allocation;
2552 uint8_t Fixed_AllocationDummy;
2553 } u;
2555 bool Exist_AdditionsR99;
2556 PTR_GPRS_AdditionsR99_t AdditionsR99;
2557 } PTR_GPRS_t;
2559 typedef struct
2561 bool Exist_COMPACT_ReducedMA;
2562 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2564 uint8_t EGPRS_ChannelCodingCommand;
2565 uint8_t RESEGMENT;
2567 bool Exist_DOWNLINK_EGPRS_WindowSize;
2568 uint8_t DOWNLINK_EGPRS_WindowSize;
2570 bool Exist_UPLINK_EGPRS_WindowSize;
2571 uint8_t UPLINK_EGPRS_WindowSize;
2573 uint8_t LINK_QUALITY_MEASUREMENT_MODE;
2575 bool Exist_Packet_Extended_Timing_Advance;
2576 uint8_t Packet_Extended_Timing_Advance;
2578 Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2580 uint8_t UnionType;
2581 union
2583 TRDynamic_Allocation_t Dynamic_Allocation;
2584 uint8_t FixedAllocationDummy;
2585 } u;
2586 } PTR_EGPRS_00_t;
2588 typedef struct
2590 uint8_t UnionType;
2591 union
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;
2600 #if 0
2601 enum PTR_Type
2603 PTR_GPRS,
2604 PTR_EGPRS
2606 #endif
2608 typedef struct
2610 uint8_t MESSAGE_TYPE;
2611 uint8_t PAGE_MODE;
2613 Global_TFI_t Global_TFI;
2615 uint8_t UnionType;
2616 union
2618 PTR_GPRS_t PTR_GPRS_Struct;
2619 PTR_EGPRS_t PTR_EGPRS_Struct;
2620 } u;
2621 } Packet_Timeslot_Reconfigure_t;
2624 /* < PSI1 message content > */
2625 typedef struct
2627 uint8_t ACC_CONTR_CLASS[2];
2628 uint8_t MAX_RETRANS[4];
2629 uint8_t S;
2630 uint8_t TX_INT;
2632 uint8_t Exist_PERSISTENCE_LEVEL;
2633 uint8_t PERSISTENCE_LEVEL[4];
2634 } PRACH_Control_t;
2636 typedef struct
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;
2642 } PCCCH_Organization_t;
2644 typedef struct
2646 uint8_t LB_MS_TXPWR_MAX_CCH;
2647 } PSI1_AdditionsR6_t;
2649 typedef struct
2651 uint8_t MSCR;
2652 uint8_t SGSNR;
2653 uint8_t BandIndicator;
2654 bool Exist_AdditionsR6;
2655 PSI1_AdditionsR6_t AdditionsR6;
2656 } PSI1_AdditionsR99_t;
2658 typedef struct
2660 uint8_t MESSAGE_TYPE;
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;
2668 uint8_t Exist_PSI_COUNT_HR;
2669 uint8_t PSI_COUNT_HR;
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;
2678 bool Exist_AdditionsR99;
2679 PSI1_AdditionsR99_t AdditionsR99;
2680 } PSI1_t;
2682 /* < PSI2 message content > */
2683 typedef struct
2685 uint8_t NUMBER;
2687 uint8_t Length;
2688 uint8_t Contents[15 + 3];/* octet (val(Length of RFL contents) + 3) */
2689 } Reference_Frequency_t;
2691 typedef struct
2693 uint8_t NoOfRFLs;
2694 uint8_t RFL_Number[MAX_RFLS];
2695 } Cell_Allocation_t;
2697 typedef struct
2699 uint8_t NUMBER;
2700 GPRS_Mobile_Allocation_t Mobile_Allocation;
2701 } PSI2_MA_t;
2703 typedef struct
2705 uint16_t ARFCN;
2706 uint8_t TIMESLOT_ALLOCATION;
2707 } Non_Hopping_PCCCH_Carriers_t;
2709 typedef struct
2711 uint8_t Count_Carriers;
2712 Non_Hopping_PCCCH_Carriers_t Carriers[7];
2713 } NonHoppingPCCCH_t;
2715 typedef struct
2717 uint8_t MAIO;
2718 uint8_t TIMESLOT_ALLOCATION;
2719 } Hopping_PCCCH_Carriers_t;
2721 typedef struct
2723 uint8_t MA_NUMBER;
2725 uint8_t Count_Carriers;
2726 Hopping_PCCCH_Carriers_t Carriers[10];/* MAX_PCCCH but 10 is theoretical max. */
2727 } HoppingPCCCH_t;
2729 typedef struct
2731 uint8_t TSC;
2733 uint8_t UnionType;
2734 union
2736 NonHoppingPCCCH_t NonHopping;
2737 HoppingPCCCH_t Hopping;
2738 } u;
2739 } PCCCH_Description_t;
2741 typedef struct
2743 LAI_t LAI;
2744 uint8_t RAC;
2745 CellId_t Cell_Identity;
2746 } Cell_Identification_t;
2748 typedef struct
2750 uint8_t ATT;
2752 uint8_t Exist_T3212;
2753 uint8_t T3212;
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;
2767 uint8_t Exist_Extension_Bits;
2768 Extension_Bits_t Extension_Bits;
2769 } Non_GPRS_Cell_Options_t;
2771 typedef struct
2773 uint8_t MESSAGE_TYPE;
2774 uint8_t PAGE_MODE;
2775 uint8_t CHANGE_MARK;
2776 uint8_t INDEX;
2777 uint8_t COUNT;
2779 uint8_t Exist_Cell_Identification;
2780 Cell_Identification_t Cell_Identification;
2782 uint8_t Exist_Non_GPRS_Cell_Options;
2783 Non_GPRS_Cell_Options_t Non_GPRS_Cell_Options;
2785 uint8_t Count_Reference_Frequency;
2786 Reference_Frequency_t Reference_Frequency[MAX_RFLS];
2788 Cell_Allocation_t Cell_Allocation;
2790 uint8_t Count_GPRS_MA;
2791 PSI2_MA_t GPRS_MA[MAX_MA_LISTS_IN_PSI2];
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;
2797 /* < PSI3 message content > */
2798 typedef struct
2800 uint8_t PRIORITY_CLASS;
2801 uint8_t HCS_THR;
2802 } HCS_t;
2804 typedef struct
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;
2811 uint8_t Exist_HCS;
2812 HCS_t HCS;
2813 uint8_t MULTIBAND_REPORTING;
2814 } Serving_Cell_params_t;
2816 typedef struct
2818 uint8_t GPRS_CELL_RESELECT_HYSTERESIS;
2819 uint8_t C31_HYST;
2820 uint8_t C32_QUAL;
2821 uint8_t RANDOM_ACCESS_RETRY;
2823 uint8_t Exist_T_RESEL;
2824 uint8_t T_RESEL;
2826 uint8_t Exist_RA_RESELECT_HYSTERESIS;
2827 uint8_t RA_RESELECT_HYSTERESIS;
2828 } Gen_Cell_Sel_t;
2830 typedef struct
2832 uint8_t PBCCH_LOCATION;
2833 uint8_t PSI1_REPEAT_PERIOD;
2834 } Location_Repeat_t;
2836 typedef struct
2838 uint8_t UnionType;
2839 union
2841 uint8_t SI13_LOCATION;
2842 Location_Repeat_t lr;
2843 } u;
2844 } SI13_PBCCH_Location_t;
2846 typedef struct
2848 uint8_t BSIC;
2849 uint8_t CELL_BAR_ACCESS_2;
2850 uint8_t EXC_ACC;
2851 uint8_t SAME_RA_AS_SERVING_CELL;
2853 uint8_t Exist_RXLEV_and_TXPWR;
2854 uint8_t GPRS_RXLEV_ACCESS_MIN;
2855 uint8_t GPRS_MS_TXPWR_MAX_CCH;
2857 uint8_t Exist_OFFSET_and_TIME;
2858 uint8_t GPRS_TEMPORARY_OFFSET;
2859 uint8_t GPRS_PENALTY_TIME;
2861 uint8_t Exist_GPRS_RESELECT_OFFSET;
2862 uint8_t GPRS_RESELECT_OFFSET;
2864 uint8_t Exist_HCS;
2865 HCS_t HCS;
2867 uint8_t Exist_SI13_PBCCH_Location;
2868 SI13_PBCCH_Location_t SI13_PBCCH_Location;
2869 } Cell_Selection_t;
2871 /* Neighbour cell list as used in PSI3 and PSI3bis */
2872 typedef struct
2874 uint8_t FREQ_DIFF_LENGTH;
2875 uint8_t FREQUENCY_DIFF;
2877 Cell_Selection_t Cell_SelectionParams;
2878 } Cell_Selection_Params_With_FreqDiff_t;
2880 typedef struct
2882 uint16_t START_FREQUENCY;
2883 Cell_Selection_t Cell_Selection;
2884 uint8_t NR_OF_REMAINING_CELLS;
2885 uint8_t FREQ_DIFF_LENGTH;
2887 Cell_Selection_Params_With_FreqDiff_t Cell_Selection_Params_With_FreqDiff[16];
2888 } NeighbourCellParameters_t;
2890 typedef struct
2892 uint8_t Count;
2893 NeighbourCellParameters_t Parameters[32];
2894 } NeighbourCellList_t;
2896 /* < PSI3 message content > */
2898 typedef struct
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;
2918 } COMPACT_Cell_Sel_t;
2920 typedef struct
2922 uint8_t FREQ_DIFF_LENGTH;
2923 uint16_t FREQUENCY_DIFF;
2924 COMPACT_Cell_Sel_t COMPACT_Cell_Sel_Remain_Cells;
2925 } COMPACT_Neighbour_Cell_Param_Remaining_t;
2927 typedef struct
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];
2934 } COMPACT_Neighbour_Cell_Param_t;
2936 typedef struct
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];
2941 } COMPACT_Info_t;
2943 typedef struct
2945 uint8_t Exist_CCN_Support_Desc;
2946 CCN_Support_Description_t CCN_Support_Desc;
2947 } PSI3_AdditionR4_t;
2949 typedef struct
2951 uint8_t Exist_COMPACT_Info;
2952 COMPACT_Info_t COMPACT_Info;
2953 uint8_t Exist_AdditionR4;
2954 PSI3_AdditionR4_t AdditionR4;
2955 } PSI3_AdditionR99_t;
2957 typedef struct
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;
2964 } PSI3_AdditionR98_t;
2966 typedef struct
2968 uint8_t MESSAGE_TYPE;
2969 uint8_t PAGE_MODE;
2970 uint8_t CHANGE_MARK;
2971 uint8_t BIS_COUNT;
2973 Serving_Cell_params_t Serving_Cell_params;
2975 Gen_Cell_Sel_t General_Cell_Selection;
2976 NeighbourCellList_t NeighbourCellList;
2978 uint8_t Exist_AdditionR98;
2979 PSI3_AdditionR98_t AdditionR98;
2980 } PSI3_t;
2982 /* < PSI3_BIS message content > */
2983 typedef struct
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;
2991 NeighbourCellList_t NeighbourCellList;
2992 } PSI3_BIS_t;
2994 /* < PSI4 message content > */
2995 typedef struct
2997 uint8_t MA_NUMBER;
2998 uint8_t MAIO;
2999 } h_CG_t;
3001 typedef struct
3003 uint8_t UnionType;
3004 union
3006 uint16_t ARFCN;
3007 h_CG_t h_CG;
3008 } u;
3010 uint8_t TIMESLOT_ALLOCATION;
3011 } Channel_Group_t;
3013 typedef struct
3015 /* Channel_Group_t Channel_Group
3016 * At least one
3017 * the first one is unpacked in the index
3019 uint8_t Count_Channel_Group;
3020 Channel_Group_t Channel_Group[8];
3021 } Channel_List_t;
3023 typedef struct
3025 uint8_t MESSAGE_TYPE;
3027 uint8_t PAGE_MODE;
3028 uint8_t CHANGE_MARK;
3029 uint8_t INDEX;
3030 uint8_t COUNT;
3032 Channel_List_t Channel_List;
3034 } PSI4_t;
3037 /* < PSI5 message content > */
3038 typedef struct
3040 uint8_t existRepParamsFDD;
3041 uint8_t RepQuantFDD;
3042 uint8_t MultiratReportingFDD;
3044 uint8_t existReportingParamsFDD;
3045 uint8_t ReportingOffsetFDD;
3046 uint8_t ReportingThresholdFDD;
3048 uint8_t existMultiratReportingTDD;
3049 uint8_t MultiratReportingTDD;
3051 uint8_t existOffsetThresholdTDD;
3052 uint8_t ReportingOffsetTDD;
3053 uint8_t ReportingThresholdTDD;
3054 } GPRSMeasurementParams3G_PSI5_t;
3056 typedef struct
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;
3064 bool Exist_GPRSMeasurementParams;
3065 MeasurementParams_t GPRSMeasurementParams;
3066 bool Exist_GPRSMeasurementParams3G;
3067 GPRSMeasurementParams3G_PSI5_t GPRSMeasurementParams3G;
3068 } ENH_Reporting_Parameters_t;
3070 typedef struct
3072 uint8_t Exist_OffsetThreshold_700;
3073 OffsetThreshold_t OffsetThreshold_700;
3074 uint8_t Exist_OffsetThreshold_810;
3075 OffsetThreshold_t OffsetThreshold_810;
3076 } PSI5_AdditionsR7;
3078 typedef struct
3080 uint8_t Exist_GPRS_AdditionalMeasurementParams3G;
3081 GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
3082 uint8_t Exist_AdditionsR7;
3083 PSI5_AdditionsR7 AdditionsR7;
3084 } PSI5_AdditionsR5;
3086 typedef struct
3088 uint8_t Exist_ENH_Reporting_Param;
3089 ENH_Reporting_Parameters_t ENH_Reporting_Param;
3090 uint8_t Exist_AdditionsR5;
3091 PSI5_AdditionsR5 AdditionisR5;
3092 } PSI5_AdditionsR99;
3094 typedef struct
3096 uint8_t MESSAGE_TYPE;
3098 uint8_t PAGE_MODE;
3099 uint8_t CHANGE_MARK;
3100 uint8_t INDEX;
3101 uint8_t COUNT;
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;
3112 /* < PSI13 message content >
3113 * Combined with SI13
3115 typedef struct
3117 uint8_t Exist_LB_MS_TXPWR_MAX_CCH;
3118 uint8_t LB_MS_TXPWR_MAX_CCH;
3119 uint8_t SI2n_SUPPORT;
3120 }PSI13_AdditionsR6;
3122 typedef PSI13_AdditionsR6 SI13_AdditionsR6;
3124 typedef struct
3126 uint8_t SI_STATUS_IND;
3127 uint8_t Exist_AdditionsR6;
3128 PSI13_AdditionsR6 AdditionsR6;
3129 }PSI13_AdditionsR4;
3131 typedef PSI13_AdditionsR4 SI13_AdditionsR4;
3133 typedef struct
3135 uint8_t SGSNR;
3136 bool Exist_AdditionsR4;
3137 PSI13_AdditionsR4 AdditionsR4;
3138 }PSI13_AdditionR99;
3140 typedef PSI13_AdditionR99 SI13_AdditionR99;
3142 typedef struct
3144 uint8_t Exist;
3145 uint8_t MESSAGE_TYPE;
3147 uint8_t PAGE_MODE;
3148 uint8_t BCCH_CHANGE_MARK;
3149 uint8_t SI_CHANGE_FIELD;
3151 uint8_t Exist_MA;
3152 uint8_t SI13_CHANGE_MARK;
3153 GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
3155 uint8_t UnionType;
3156 union
3158 PBCCH_Not_present_t PBCCH_Not_present;
3159 PBCCH_present_t PBCCH_present;
3160 } u;
3162 bool Exist_AdditionsR99;
3163 PSI13_AdditionR99 AdditionsR99;
3164 } PSI13_t;
3166 /* SI_13_t is combined in the PSI13 structure */
3167 typedef PSI13_t SI_13_t;
3169 /* < Packet PRACH Parameters message content > */
3170 typedef struct
3172 uint8_t MESSAGE_TYPE;
3173 uint8_t PAGE_MODE;
3176 PRACH_Control_t PRACH_Control;
3177 } Packet_PRACH_Parameters_t;
3179 /* < Packet Access Reject message content > */
3180 typedef struct
3182 uint8_t UnionType;
3183 union
3185 uint32_t TLLI;
3186 Packet_Request_Reference_t Packet_Request_Reference;
3187 Global_TFI_t Global_TFI;
3188 } u;
3189 } RejectID_t;
3191 typedef struct
3193 RejectID_t ID;
3195 uint8_t Exist_Wait;
3196 uint8_t WAIT_INDICATION;
3197 uint8_t WAIT_INDICATION_SIZE;
3198 } Reject_t;
3200 typedef struct
3202 uint8_t MESSAGE_TYPE;
3203 uint8_t PAGE_MODE;
3205 uint8_t IndexToOur;
3206 uint8_t Count_Reject;
3207 Reject_t Reject[5];
3208 } Packet_Access_Reject_t;
3210 /* < Packet Cell Change Order message content > */
3211 typedef struct
3213 uint8_t CELL_BAR_ACCESS_2;
3214 uint8_t EXC_ACC;
3215 uint8_t SAME_RA_AS_SERVING_CELL;
3217 uint8_t Exist_RXLEV_and_TXPWR;
3218 uint8_t GPRS_RXLEV_ACCESS_MIN;
3219 uint8_t GPRS_MS_TXPWR_MAX_CCH;
3221 uint8_t Exist_OFFSET_and_TIME;
3222 uint8_t GPRS_TEMPORARY_OFFSET;
3223 uint8_t GPRS_PENALTY_TIME;
3225 uint8_t Exist_GPRS_RESELECT_OFFSET;
3226 uint8_t GPRS_RESELECT_OFFSET;
3228 uint8_t Exist_HCS;
3229 HCS_t HCS;
3231 uint8_t Exist_SI13_PBCCH_Location;
3232 SI13_PBCCH_Location_t SI13_PBCCH_Location;
3233 } Cell_Selection_2_t;
3235 typedef struct
3237 uint8_t FREQUENCY_DIFF;
3238 uint8_t BSIC;
3239 Cell_Selection_t Cell_Selection;
3240 } h_FreqBsicCell_t;
3242 typedef struct
3244 uint8_t FREQ_DIFF_LENGTH;
3245 uint8_t FREQUENCY_DIFF;
3246 uint8_t BSIC;
3248 bool Exist_CellSelectionParams;
3249 Cell_Selection_2_t CellSelectionParams;
3250 } CellSelectionParamsWithFreqDiff_t;
3252 typedef struct
3254 uint16_t START_FREQUENCY;
3255 uint8_t BSIC;
3257 uint8_t Exist_Cell_Selection;
3258 Cell_Selection_2_t Cell_Selection;
3260 uint8_t NR_OF_FREQUENCIES;
3261 uint8_t FREQ_DIFF_LENGTH;
3264 CellSelectionParamsWithFreqDiff_t CellSelectionParamsWithFreqDiff[32];
3265 } Add_Frequency_list_t;
3267 typedef struct
3269 uint8_t REMOVED_FREQ_INDEX;
3270 } Removed_Freq_Index_t;
3272 typedef struct
3274 uint8_t Exist_REMOVED_FREQ;
3275 uint8_t NR_OF_REMOVED_FREQ;
3276 Removed_Freq_Index_t Removed_Freq_Index[32];
3278 uint8_t Count_Add_Frequency;
3279 Add_Frequency_list_t Add_Frequency[32];
3280 } NC_Frequency_list_t;
3283 typedef struct
3285 uint8_t NETWORK_CONTROL_ORDER;
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;
3292 uint8_t Exist_NC_FREQUENCY_LIST;
3293 NC_Frequency_list_t NC_Frequency_list;
3294 } NC_Measurement_Parameters_with_Frequency_List_t;
3297 typedef struct
3299 uint8_t BA_IND;
3300 uint8_t BA_IND_3G;
3301 } BA_IND_t;
3303 typedef struct
3305 uint8_t BA_USED;
3306 uint8_t BA_USED_3G;
3307 } BA_USED_t;
3309 typedef struct
3311 uint8_t RXLEV_SERVING_CELL;
3312 } Serving_Cell_Data_t;
3314 typedef struct
3316 uint8_t FREQUENCY_N;
3317 uint8_t Exist_BSIC_N;
3318 uint8_t BSIC_N;
3319 uint8_t RXLEV_N;
3320 } NC_Measurements_t;
3322 typedef struct
3324 uint8_t BCCH_FREQ_N;
3325 uint8_t BSIC_N;
3326 uint8_t RXLEV_N;
3327 } RepeatedInvalid_BSIC_Info_t;
3329 typedef struct
3331 uint8_t Exist_REPORTING_QUANTITY;
3332 uint8_t REPORTING_QUANTITY;
3333 } REPORTING_QUANTITY_Instance_t;
3335 typedef struct
3337 uint8_t NC_MODE;
3338 Serving_Cell_Data_t Serving_Cell_Data;
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. */
3344 } NC_Measurement_Report_t;
3346 typedef struct
3348 uint8_t EXT_REPORTING_TYPE;
3350 uint8_t Exist_I_LEVEL;
3351 struct
3353 uint8_t Exist;
3354 uint8_t I_LEVEL;
3355 } Slot[8];
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 */
3360 } EXT_Measurement_Report_t;
3362 typedef struct
3364 uint8_t CELL_LIST_INDEX_3G;
3365 uint8_t REPORTING_QUANTITY;
3366 } Measurements_3G_t;
3368 typedef struct
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;
3376 } UTRAN_CSG_Measurement_Report_t;
3378 typedef struct
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;
3387 } EUTRAN_CSG_Measurement_Report_t;
3389 typedef struct
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;
3395 } PMR_AdditionsR9_t;
3397 typedef struct
3399 uint8_t EUTRAN_FREQUENCY_INDEX;
3400 uint16_t CELL_IDENTITY;
3401 uint8_t REPORTING_QUANTITY;
3402 } EUTRAN_Measurement_Report_Body_t;
3404 typedef struct
3406 uint8_t N_EUTRAN;
3407 EUTRAN_Measurement_Report_Body_t Report[4];
3408 } EUTRAN_Measurement_Report_t;
3410 typedef struct
3412 bool Exist_EUTRAN_Meas_Rpt;
3413 EUTRAN_Measurement_Report_t EUTRAN_Meas_Rpt;
3414 bool Exist_AdditionsR9;
3415 PMR_AdditionsR9_t AdditionsR9;
3416 } PMR_AdditionsR8_t;
3418 typedef struct
3420 bool Exist_GRNTI;
3421 uint8_t GRNTI;
3422 bool Exist_AdditionsR8;
3423 PMR_AdditionsR8_t AdditionsR8;
3424 } PMR_AdditionsR5_t;
3426 typedef struct
3428 bool Exist_Info3G;
3429 uint8_t UnionType;
3430 union
3432 BA_USED_t BA_USED;
3433 uint8_t PSI3_CHANGE_MARK;
3434 } u;
3435 uint8_t PMO_USED;
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
3441 bool Exist_MeasurementReport3G;
3442 uint8_t N_3G;
3443 Measurements_3G_t Measurements_3G[6];
3445 bool Exist_AdditionsR5;
3446 PMR_AdditionsR5_t AdditionsR5;
3447 } PMR_AdditionsR99_t;
3449 typedef struct
3451 uint8_t MESSAGE_TYPE;
3452 uint8_t PayloadType;
3453 uint8_t spare;
3454 uint8_t R;
3456 uint32_t TLLI;
3457 uint8_t Exist_PSI5_CHANGE_MARK;
3458 uint8_t PSI5_CHANGE_MARK;
3460 uint8_t UnionType;
3461 union
3463 NC_Measurement_Report_t NC_Measurement_Report;
3464 EXT_Measurement_Report_t EXT_Measurement_Report;
3465 } u;
3467 bool Exist_AdditionsR99;
3468 PMR_AdditionsR99_t AdditionsR99;
3469 } Packet_Measurement_Report_t;
3471 #define INV_BSIC_LIST_LEN (16)
3473 #define REPORT_QUANTITY_LIST_LEN (96) /* Specification specified up to 96 */
3475 typedef struct
3477 uint8_t NC_MODE;
3478 uint8_t UnionType;
3479 union
3481 BA_USED_t BA_USED;
3482 uint8_t PSI3_CHANGE_MARK;
3483 } u;
3485 uint8_t PMO_USED;
3486 uint8_t BSIC_Seen;
3487 uint8_t SCALE;
3489 uint8_t Exist_Serving_Cell_Data;
3490 Serving_Cell_Data_t Serving_Cell_Data;
3492 uint8_t Count_RepeatedInvalid_BSIC_Info;
3493 RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
3495 uint8_t Exist_ReportBitmap;
3496 uint8_t Count_REPORTING_QUANTITY_Instances;
3497 REPORTING_QUANTITY_Instance_t REPORTING_QUANTITY_Instances[REPORT_QUANTITY_LIST_LEN];
3499 } ENH_NC_Measurement_Report_t;
3501 typedef struct
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;
3507 } PEMR_AdditionsR9_t;
3509 typedef struct
3511 bool Exist_REPORTING_QUANTITY;
3512 uint8_t REPORTING_QUANTITY;
3513 } Bitmap_Report_Quantity_t;
3515 typedef struct
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;
3523 } PEMR_AdditionsR8_t;
3525 typedef struct
3527 bool Exist_GRNTI_Ext;
3528 uint8_t GRNTI_Ext;
3529 bool Exist_AdditionsR8;
3530 PEMR_AdditionsR8_t AdditionsR8;
3531 } PEMR_AdditionsR5_t;
3533 typedef struct
3535 uint8_t MESSAGE_TYPE;
3536 uint8_t PayloadType;
3537 uint8_t spare;
3538 uint8_t R;
3540 uint32_t TLLI;
3542 ENH_NC_Measurement_Report_t Measurements;
3544 bool Exist_AdditionsR5;
3545 PEMR_AdditionsR5_t AdditionsR5;
3546 } Packet_Enh_Measurement_Report_t;
3548 typedef struct
3550 uint8_t RXLEV_SERVING_CELL;
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. */
3556 } CCN_Measurement_Report_t;
3558 typedef struct
3560 uint16_t ARFCN;
3561 uint8_t BSIC;
3562 } Target_Cell_GSM_Notif_t;
3564 typedef struct
3566 uint16_t FDD_ARFCN;
3567 uint8_t Exist_Bandwith_FDD;
3568 uint8_t BANDWITH_FDD;
3569 uint16_t SCRAMBLING_CODE;
3570 } FDD_Target_Cell_Notif_t;
3572 typedef struct
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;
3579 } TDD_Target_Cell_Notif_t;
3581 typedef struct
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;
3588 } Target_Cell_3G_Notif_t;
3590 typedef struct
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;
3597 } Target_EUTRAN_Cell_Notif_t;
3599 typedef struct
3601 uint8_t EUTRAN_FREQUENCY_INDEX;
3602 uint16_t CELL_IDENTITY;
3603 uint8_t REPORTING_QUANTITY;
3604 } Eutran_Ccn_Measurement_Report_Cell_t;
3606 typedef struct
3608 bool ThreeG_BA_USED;
3609 uint8_t N_EUTRAN;
3610 Eutran_Ccn_Measurement_Report_Cell_t Eutran_Ccn_Measurement_Report_Cell[4];
3611 } Eutran_Ccn_Measurement_Report_t;
3613 typedef struct
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;
3624 } Target_Cell_4G_Notif_t;
3626 typedef struct
3628 uint8_t UnionType;
3629 union
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;
3636 } Target_Cell_CSG_Notif_t;
3638 typedef struct
3640 uint8_t UnionType;
3641 union
3643 Target_Cell_4G_Notif_t Target_Cell_4G_Notif;
3644 Target_Cell_CSG_Notif_t Target_Cell_CSG_Notif;
3645 } u;
3646 } Target_Other_RAT_2_Notif_t;
3648 typedef struct
3650 uint8_t UnionType;
3651 union
3653 Target_Cell_3G_Notif_t Target_Cell_3G_Notif;
3654 Target_Other_RAT_2_Notif_t Target_Other_RAT_2_Notif;
3655 } u;
3656 } Target_Other_RAT_Notif_t;
3658 typedef struct
3660 uint8_t UnionType;
3661 union
3663 Target_Cell_GSM_Notif_t Target_Cell_GSM_Notif;
3664 Target_Other_RAT_Notif_t Target_Other_RAT_Notif;
3665 } u;
3666 } Target_Cell_t;
3668 typedef struct
3670 uint8_t Exist_BA_USED_3G;
3671 uint8_t BA_USED_3G;
3673 uint8_t N_3G;
3674 Measurements_3G_t Measurements_3G[6];
3675 } PCCN_AdditionsR6_t;
3677 /* < Packet Cell Change Notification message contents > */
3678 typedef struct
3680 uint8_t MESSAGE_TYPE;
3681 uint8_t PayloadType;
3682 uint8_t spare;
3683 uint8_t R;
3685 Global_TFI_t Global_TFI;
3687 Target_Cell_t Target_Cell;
3689 uint8_t UnionType;
3690 union
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;
3699 bool Exist_AdditionsR6;
3700 PCCN_AdditionsR6_t AdditionsR6;
3701 } Packet_Cell_Change_Notification_t;
3703 /* < Packet Cell Change Order message contents > */
3706 typedef struct
3708 uint8_t FrequencyScrolling;
3709 uint8_t BSIC;
3710 } BSICDesc_t;
3713 #define MAX_BSIC_DESCS (19) /* Due to message size (23 bytes) and header etc,
3714 * there cannot be more than 19 DESCS.
3717 typedef struct
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;
3726 typedef BSICList_t GPRSBSICList_t;
3728 #define MAX_RTD_VALUES (6)
3730 typedef struct
3732 uint8_t NumRTDValues;
3733 uint16_t RTD[MAX_RTD_VALUES];
3734 } RTDValues_t;
3736 typedef struct
3738 bool Exist_StartValue;
3739 uint8_t StartValue;
3740 } BAIndexStartRTD_t;
3742 #define MAX_RTD_FREQS (32)
3744 typedef struct
3746 BAIndexStartRTD_t BAIndexStart;
3747 uint8_t NumFreqs;
3748 RTDValues_t RTD_s[MAX_RTD_FREQS];
3749 } RTDList_t;
3751 typedef struct
3753 bool Exist_ListRTD6;
3754 RTDList_t ListRTD6;
3756 bool Exist_ListRTD12;
3757 RTDList_t ListRTD12;
3758 } RealTimeDiffs_t;
3761 typedef MeasurementParams_t GPRSMeasurementParams_PMO_PCCO_t;
3763 typedef struct {
3764 bool existMultiratReporting;
3765 uint8_t MultiratReporting;
3767 bool existOffsetThreshold;
3768 OffsetThreshold_t OffsetThreshold;
3769 } MultiratParams3G_t;
3771 typedef struct
3773 uint8_t Qsearch_P;
3774 uint8_t SearchPrio3G;
3776 bool existRepParamsFDD;
3777 uint8_t RepQuantFDD;
3778 uint8_t MultiratReportingFDD;
3780 bool existOffsetThreshold;
3781 OffsetThreshold_t OffsetThreshold;
3783 MultiratParams3G_t ParamsTDD;
3784 MultiratParams3G_t ParamsCDMA2000;
3785 } ENH_GPRSMeasurementParams3G_PMO_t;
3788 typedef struct
3790 uint8_t Qsearch_P;
3791 uint8_t SearchPrio3G;
3793 bool existRepParamsFDD;
3794 uint8_t RepQuantFDD;
3795 uint8_t MultiratReportingFDD;
3797 bool existOffsetThreshold;
3798 OffsetThreshold_t OffsetThreshold;
3800 MultiratParams3G_t ParamsTDD;
3801 } ENH_GPRSMeasurementParams3G_PCCO_t;
3804 typedef struct
3806 uint8_t Qsearch_p;
3807 uint8_t SearchPrio3G;
3809 uint8_t existRepParamsFDD;
3810 uint8_t RepQuantFDD;
3811 uint8_t MultiratReportingFDD;
3813 uint8_t existReportingParamsFDD;
3814 uint8_t ReportingOffsetFDD;
3815 uint8_t ReportingThresholdFDD;
3817 uint8_t existMultiratReportingTDD;
3818 uint8_t MultiratReportingTDD;
3820 uint8_t existOffsetThresholdTDD;
3821 uint8_t ReportingOffsetTDD;
3822 uint8_t ReportingThresholdTDD;
3823 } GPRSMeasurementParams3G_t;
3825 typedef struct
3827 uint8_t REMOVED_3GCELL_INDEX;
3828 uint8_t CELL_DIFF_LENGTH_3G;
3829 uint8_t CELL_DIFF_3G;
3830 } N2_t;
3832 typedef struct
3834 uint8_t N2_Count;
3835 N2_t N2s[32];
3836 } N1_t;
3838 typedef struct
3840 uint8_t N1_Count;
3841 N1_t N1s[4];
3842 } Removed3GCellDescription_t;
3844 typedef struct
3846 uint8_t Complete_This;
3847 } CDMA2000_Description_t;
3849 typedef 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) */
3856 } UTRAN_FDD_NeighbourCells_t;
3858 typedef struct {
3859 bool existBandwidth;
3860 uint8_t Bandwidth;
3861 uint8_t NrOfFrequencies;
3862 UTRAN_FDD_NeighbourCells_t CellParams[8];
3863 } UTRAN_FDD_Description_t;
3865 typedef 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 */
3872 } UTRAN_TDD_NeighbourCells_t;
3874 typedef struct {
3875 bool existBandwidth;
3876 uint8_t Bandwidth;
3877 uint8_t NrOfFrequencies;
3878 UTRAN_TDD_NeighbourCells_t CellParams[8];
3879 } UTRAN_TDD_Description_t;
3881 typedef struct
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;
3895 } NeighbourCellDescription3G_PMO_t;
3897 typedef struct
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;
3909 } NeighbourCellDescription3G_PCCO_t;
3911 typedef struct
3913 uint8_t UnionType;
3914 union
3916 BA_IND_t BA_IND;
3917 uint8_t PSI3_CHANGE_MARK;
3918 } u;
3920 uint8_t PMO_IND;
3922 uint8_t REPORT_TYPE;
3923 uint8_t REPORTING_RATE;
3924 uint8_t INVALID_BSIC_REPORTING;
3926 bool Exist_NeighbourCellDescription3G;
3927 NeighbourCellDescription3G_PMO_t NeighbourCellDescription3G;
3929 bool Exist_GPRSReportPriority;
3930 GPRSReportPriority_t GPRSReportPriority;
3932 bool Exist_GPRSMeasurementParams;
3933 GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3934 bool Exist_GPRSMeasurementParams3G;
3935 ENH_GPRSMeasurementParams3G_PMO_t GPRSMeasurementParams3G;
3936 } ENH_Measurement_Parameters_PMO_t;
3938 typedef struct
3940 uint8_t UnionType;
3941 union
3943 BA_IND_t BA_IND;
3944 uint8_t PSI3_CHANGE_MARK;
3945 } u;
3947 uint8_t PMO_IND;
3949 uint8_t REPORT_TYPE;
3950 uint8_t REPORTING_RATE;
3951 uint8_t INVALID_BSIC_REPORTING;
3953 bool Exist_NeighbourCellDescription3G;
3954 NeighbourCellDescription3G_PCCO_t NeighbourCellDescription3G;
3956 bool Exist_GPRSReportPriority;
3957 GPRSReportPriority_t GPRSReportPriority;
3959 bool Exist_GPRSMeasurementParams;
3960 GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3961 bool Exist_GPRSMeasurementParams3G;
3962 ENH_GPRSMeasurementParams3G_PCCO_t GPRSMeasurementParams3G;
3963 } ENH_Measurement_Parameters_PCCO_t;
3965 typedef struct
3967 uint8_t UnionType;
3968 union
3970 Global_TFI_t Global_TFI;
3971 uint32_t TLLI;
3972 } u;
3973 } PacketCellChangeOrderID_t;
3975 typedef struct
3977 uint8_t CELL_BAR_QUALIFY_3;
3978 uint8_t Exist_SI13_Alt_PBCCH_Location;
3979 SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
3980 } lu_ModeCellSelectionParameters_t;
3982 typedef struct
3984 uint8_t Exist_lu_ModeCellSelectionParams;
3985 lu_ModeCellSelectionParameters_t lu_ModeCellSelectionParameters;
3986 } lu_ModeCellSelectionParams_t;
3988 typedef struct
3990 lu_ModeCellSelectionParams_t lu_ModeCellSelectionParameters;
3991 uint8_t NR_OF_FREQUENCIES;
3992 lu_ModeCellSelectionParams_t lu_ModeCellSelectionParams[32];
3993 } lu_ModeNeighbourCellParams_t;
3995 typedef struct
3997 uint8_t CELL_BAR_QUALIFY_3;
3998 uint8_t SAME_RA_AS_SERVING_CELL;
4000 uint8_t Exist_RXLEV_and_TXPWR;
4001 uint8_t GPRS_RXLEV_ACCESS_MIN;
4002 uint8_t GPRS_MS_TXPWR_MAX_CCH;
4004 uint8_t Exist_OFFSET_and_TIME;
4005 uint8_t GPRS_TEMPORARY_OFFSET;
4006 uint8_t GPRS_PENALTY_TIME;
4008 uint8_t Exist_GPRS_RESELECT_OFFSET;
4009 uint8_t GPRS_RESELECT_OFFSET;
4011 uint8_t Exist_HCS;
4012 HCS_t HCS;
4014 uint8_t Exist_SI13_Alt_PBCCH_Location;
4015 SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
4016 } lu_ModeOnlyCellSelection_t;
4018 typedef struct
4020 uint8_t FREQ_DIFF_LENGTH;
4021 uint8_t FREQUENCY_DIFF;
4022 uint8_t BSIC;
4024 bool Exist_lu_ModeOnlyCellSelectionParams;
4025 lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelectionParams;
4026 } lu_ModeOnlyCellSelectionParamsWithFreqDiff_t;
4028 typedef struct
4030 uint16_t START_FREQUENCY;
4031 uint8_t BSIC;
4033 uint8_t Exist_lu_ModeCellSelection;
4034 lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelection;
4036 uint8_t NR_OF_FREQUENCIES;
4037 uint8_t FREQ_DIFF_LENGTH;
4039 lu_ModeOnlyCellSelectionParamsWithFreqDiff_t lu_ModeOnlyCellSelectionParamsWithFreqDiff[32];
4040 } Add_lu_ModeOnlyFrequencyList_t;
4042 typedef struct
4044 uint8_t Count_Add_lu_ModeOnlyFrequencyList;
4045 Add_lu_ModeOnlyFrequencyList_t Add_lu_ModeOnlyFrequencyList[32];
4046 } NC_lu_ModeOnlyCapableCellList_t;
4049 typedef struct
4051 uint8_t NumberOfFrequencyIndexes;
4052 uint8_t UTRAN_FREQUENCY_INDEX_a[18];
4054 bool existUTRAN_PRIORITY;
4055 uint8_t UTRAN_PRIORITY;
4057 uint8_t THRESH_UTRAN_high;
4059 bool existTHRESH_UTRAN_low;
4060 uint8_t THRESH_UTRAN_low;
4062 bool existUTRAN_QRXLEVMIN;
4063 uint8_t UTRAN_QRXLEVMIN;
4064 } RepeatedUTRAN_PriorityParameters_t;
4066 typedef struct
4068 bool existDEFAULT_UTRAN_Parameters;
4069 uint8_t DEFAULT_UTRAN_PRIORITY;
4070 uint8_t DEFAULT_THRESH_UTRAN;
4071 uint8_t DEFAULT_UTRAN_QRXLEVMIN;
4073 uint8_t NumberOfPriorityParameters;
4074 RepeatedUTRAN_PriorityParameters_t RepeatedUTRAN_PriorityParameters_a[8];
4075 } PriorityParametersDescription3G_PMO_t;
4077 typedef struct
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;
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;
4092 } EUTRAN_REPORTING_THRESHOLD_OFFSET_t;
4094 typedef struct
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;
4100 } GPRS_EUTRAN_MeasurementParametersDescription_t;
4102 typedef struct
4104 uint16_t EARFCN;
4105 bool existMeasurementBandwidth;
4106 uint8_t MeasurementBandwidth;
4107 } RepeatedEUTRAN_Cells_t;
4109 typedef struct
4111 uint8_t nbrOfEUTRAN_Cells;
4112 RepeatedEUTRAN_Cells_t EUTRAN_Cells_a[6];
4114 bool existEUTRAN_PRIORITY;
4115 uint8_t EUTRAN_PRIORITY;
4117 uint8_t THRESH_EUTRAN_high;
4119 bool existTHRESH_EUTRAN_low;
4120 uint8_t THRESH_EUTRAN_low;
4122 bool existEUTRAN_QRXLEVMIN;
4123 uint8_t EUTRAN_QRXLEVMIN;
4124 } RepeatedEUTRAN_NeighbourCells_t;
4126 typedef struct
4128 uint16_t PCID;
4129 } PCID_t;
4131 typedef struct
4133 uint8_t PCID_Pattern_length;
4134 uint8_t PCID_Pattern;
4135 uint8_t PCID_Pattern_sense;
4136 } PCID_Pattern_t;
4138 typedef struct
4140 uint8_t NumberOfPCIDs;
4141 uint16_t PCID_a[11];
4143 bool existPCID_BITMAP_GROUP;
4144 uint8_t PCID_BITMAP_GROUP;
4146 uint8_t NumberOfPCID_Patterns;
4147 PCID_Pattern_t PCID_Pattern_a[19];
4148 } PCID_Group_IE_t;
4150 typedef struct
4152 uint8_t EUTRAN_FREQUENCY_INDEX;
4153 } EUTRAN_FREQUENCY_INDEX_t;
4155 typedef struct
4157 PCID_Group_IE_t NotAllowedCells;
4158 uint8_t NumberOfFrequencyIndexes;
4159 EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4160 } RepeatedEUTRAN_NotAllowedCells_t;
4162 typedef struct
4164 uint8_t NumberOfMappings;
4165 PCID_Group_IE_t PCID_ToTA_Mapping_a[14];
4167 uint8_t NumberOfFrequencyIndexes;
4168 EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4169 } RepeatedEUTRAN_PCID_to_TA_mapping_t;
4171 typedef struct
4173 uint8_t EUTRAN_CCN_ACTIVE;
4175 bool existGPRS_EUTRAN_MeasurementParametersDescription;
4176 GPRS_EUTRAN_MeasurementParametersDescription_t GPRS_EUTRAN_MeasurementParametersDescription;
4178 uint8_t nbrOfRepeatedEUTRAN_NeighbourCellsStructs;
4179 RepeatedEUTRAN_NeighbourCells_t RepeatedEUTRAN_NeighbourCells_a[4];
4181 uint8_t NumberOfNotAllowedCells;
4182 RepeatedEUTRAN_NotAllowedCells_t RepeatedEUTRAN_NotAllowedCells_a[14];
4184 uint8_t NumberOfMappings;
4185 RepeatedEUTRAN_PCID_to_TA_mapping_t RepeatedEUTRAN_PCID_to_TA_mapping_a[19];
4186 } EUTRAN_ParametersDescription_PMO_t;
4188 typedef struct
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;
4195 } ServingCellPriorityParametersDescription_t;
4197 typedef struct
4199 bool existServingCellPriorityParametersDescription;
4200 ServingCellPriorityParametersDescription_t ServingCellPriorityParametersDescription;
4202 bool existPriorityParametersDescription3G_PMO;
4203 PriorityParametersDescription3G_PMO_t PriorityParametersDescription3G_PMO;
4205 bool existEUTRAN_ParametersDescription_PMO;
4206 EUTRAN_ParametersDescription_PMO_t EUTRAN_ParametersDescription_PMO;
4207 } PriorityAndEUTRAN_ParametersDescription_PMO_t;
4209 typedef struct
4211 uint8_t PSC_Pattern_length;
4212 uint8_t PSC_Pattern;
4213 bool PSC_Pattern_sense;
4214 } PSC_Pattern_t;
4216 typedef struct
4218 uint8_t PSC_Count;
4219 uint16_t PSC[32];
4220 uint8_t PSC_Pattern_Count;
4221 PSC_Pattern_t PSC_Pattern[32];
4222 } PSC_Group_t;
4224 typedef struct
4226 PSC_Group_t CSG_PSC_SPLIT;
4227 uint8_t Count;
4228 uint8_t UTRAN_FREQUENCY_INDEX[32];
4229 } ThreeG_CSG_Description_Body_t;
4231 typedef struct
4233 uint8_t Count;
4234 ThreeG_CSG_Description_Body_t ThreeG_CSG_Description_Body[32];
4235 } ThreeG_CSG_Description_t;
4237 typedef struct
4239 PSC_Group_t CSG_PCI_SPLIT;
4240 uint8_t Count;
4241 uint8_t EUTRAN_FREQUENCY_INDEX[32];
4242 } EUTRAN_CSG_Description_Body_t;
4244 typedef struct
4246 uint8_t Count;
4247 EUTRAN_CSG_Description_Body_t EUTRAN_CSG_Description_Body[32];
4248 } EUTRAN_CSG_Description_t;
4250 typedef struct
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];
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];
4263 } Meas_Ctrl_Param_Desp_t;
4265 typedef struct
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;
4274 } Reselection_Based_On_RSRQ_t;
4276 typedef struct
4278 uint8_t Count_EUTRAN_FREQUENCY_INDEX;
4279 uint8_t EUTRAN_FREQUENCY_INDEX[32];
4280 uint8_t UnionType;
4281 union
4283 uint8_t EUTRAN_Qmin;
4284 Reselection_Based_On_RSRQ_t Reselection_Based_On_RSRQ;
4285 } u;
4286 } Rept_EUTRAN_Enh_Cell_Resel_Param_t;
4288 typedef struct
4290 uint8_t Count;
4291 Rept_EUTRAN_Enh_Cell_Resel_Param_t Repeated_EUTRAN_Enhanced_Cell_Reselection_Parameters[32];
4292 } Enh_Cell_Reselect_Param_Desp_t;
4294 typedef struct
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;
4301 } UTRAN_CSG_Cells_Reporting_Desp_t;
4303 typedef struct
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;
4311 } EUTRAN_CSG_Cells_Reporting_Desp_t;
4313 typedef struct
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;
4319 } CSG_Cells_Reporting_Desp_t;
4321 typedef struct
4323 bool existEnhanced_Cell_Reselection_Parameters_Description;
4324 Enh_Cell_Reselect_Param_Desp_t Enhanced_Cell_Reselection_Parameters_Description;
4326 bool existCSG_Cells_Reporting_Description;
4327 CSG_Cells_Reporting_Desp_t CSG_Cells_Reporting_Description;
4328 } PMO_AdditionsR9_t;
4330 typedef struct
4332 uint8_t dummy;
4333 } Delete_All_Stored_Individual_Priorities_t;
4335 typedef struct
4337 uint8_t Count;
4338 uint16_t FDD_ARFCN[32];
4339 } Individual_UTRAN_Priority_FDD_t;
4341 typedef struct
4343 uint8_t Count;
4344 uint16_t TDD_ARFCN[32];
4345 } Individual_UTRAN_Priority_TDD_t;
4347 typedef struct
4349 uint8_t UnionType;
4350 union
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;
4356 } Repeated_Individual_UTRAN_Priority_Parameters_t;
4358 typedef struct
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];
4364 } ThreeG_Individual_Priority_Parameters_Description_t;
4366 typedef struct
4368 uint8_t Count;
4369 uint16_t EARFCN[32];
4370 uint8_t EUTRAN_PRIORITY;
4371 } Repeated_Individual_EUTRAN_Priority_Parameters_t;
4373 typedef struct
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];
4379 } EUTRAN_Individual_Priority_Parameters_Description_t;
4381 typedef struct
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;
4390 } Provide_Individual_Priorities_t;
4392 typedef struct
4394 uint8_t UnionType;
4395 union
4397 Delete_All_Stored_Individual_Priorities_t Delete_All_Stored_Individual_Priorities;
4398 Provide_Individual_Priorities_t Provide_Individual_Priorities;
4399 } u;
4400 } Individual_Priorities_t;
4402 typedef struct
4404 bool existBA_IND_3G_PMO_IND;
4405 uint8_t BA_IND_3G;
4406 uint8_t PMO_IND;
4408 bool existPriorityAndEUTRAN_ParametersDescription_PMO;
4409 PriorityAndEUTRAN_ParametersDescription_PMO_t PriorityAndEUTRAN_ParametersDescription_PMO;
4411 bool existIndividualPriorities_PMO;
4412 Individual_Priorities_t IndividualPriorities_PMO;
4414 bool existThreeG_CSG_Description;
4415 ThreeG_CSG_Description_t ThreeG_CSG_Description_PMO;
4417 bool existEUTRAN_CSG_Description;
4418 EUTRAN_CSG_Description_t EUTRAN_CSG_Description_PMO;
4420 bool existMeasurement_Control_Parameters_Description;
4421 Meas_Ctrl_Param_Desp_t Measurement_Control_Parameters_Description_PMO;
4423 bool existAdditionsR9;
4424 PMO_AdditionsR9_t AdditionsR9;
4425 } PMO_AdditionsR8_t;
4427 typedef struct
4429 bool existREPORTING_OFFSET_THRESHOLD_700;
4430 uint8_t REPORTING_OFFSET_700;
4431 uint8_t REPORTING_THRESHOLD_700;
4433 bool existREPORTING_OFFSET_THRESHOLD_810;
4434 uint8_t REPORTING_OFFSET_810;
4435 uint8_t REPORTING_THRESHOLD_810;
4437 uint8_t existAdditionsR8;
4438 PMO_AdditionsR8_t additionsR8;
4439 } PMO_AdditionsR7_t;
4441 typedef struct
4443 uint8_t CCN_ACTIVE_3G;
4444 uint8_t existAdditionsR7;
4445 PMO_AdditionsR7_t additionsR7;
4446 } PMO_AdditionsR6_t;
4448 typedef struct
4450 uint8_t CCN_ACTIVE_3G;
4451 } PCCO_AdditionsR6_t;
4453 typedef struct
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;
4466 } PMO_AdditionsR5_t;
4468 typedef struct
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;
4481 } PCCO_AdditionsR5_t;
4483 typedef struct
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;
4490 } PMO_AdditionsR4_t;
4492 typedef struct
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;
4501 } PCCO_AdditionsR4_t;
4503 typedef struct
4505 ENH_Measurement_Parameters_PCCO_t ENH_Measurement_Parameters;
4506 uint8_t Exist_AdditionsR4;
4507 PCCO_AdditionsR4_t AdditionsR4;
4508 } PCCO_AdditionsR99_t;
4510 typedef struct
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;
4516 } PMO_AdditionsR99_t;
4518 typedef struct
4520 uint8_t Exist_LSA_Parameters;
4521 LSA_Parameters_t LSA_Parameters;
4523 uint8_t Exist_AdditionsR99;
4524 PMO_AdditionsR99_t AdditionsR99;
4525 } PMO_AdditionsR98_t;
4527 typedef struct
4529 uint8_t Exist_LSA_Parameters;
4530 LSA_Parameters_t LSA_Parameters;
4532 uint8_t Exist_AdditionsR99;
4533 PCCO_AdditionsR99_t AdditionsR99;
4534 } PCCO_AdditionsR98_t;
4536 typedef struct
4538 uint8_t IMMEDIATE_REL;
4539 uint16_t ARFCN;
4540 uint8_t BSIC;
4541 NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4543 uint8_t Exist_AdditionsR98;
4544 PCCO_AdditionsR98_t AdditionsR98;
4545 } Target_Cell_GSM_t;
4547 typedef struct
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;
4553 } Target_Cell_3G_AdditionsR8_t;
4555 typedef struct
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;
4561 } Target_Cell_3G_AdditionsR5_t;
4563 typedef struct
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;
4573 } Target_Cell_3G_t;
4575 #if 0
4576 #define TARGET_CELL_GSM 0
4577 #define TARGET_CELL_3G 1
4578 #endif
4580 typedef struct
4582 uint8_t MESSAGE_TYPE;
4583 uint8_t PAGE_MODE;
4585 PacketCellChangeOrderID_t ID;
4587 uint8_t UnionType;
4588 union
4590 Target_Cell_GSM_t Target_Cell_GSM;
4591 Target_Cell_3G_t Target_Cell_3G;
4592 } u;
4594 } Packet_Cell_Change_Order_t;
4596 /* < Packet Cell Change Continue message contents > */
4597 typedef struct
4599 uint8_t MESSAGE_TYPE;
4600 uint8_t PAGE_MODE;
4602 Global_TFI_t Global_TFI;
4603 uint8_t Exist_ID;
4604 uint16_t ARFCN;
4605 uint8_t BSIC;
4606 uint8_t CONTAINER_ID;
4607 } Packet_Cell_Change_Continue_t;
4610 /* < Packet Neighbour Cell Data message contents > */
4611 typedef struct
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!) */
4616 } PNCD_Container_With_ID_t;
4618 typedef struct
4620 uint8_t CONTAINER[19]; /* PD (3 bits) + CD_LENGTH (5 bits) + 18 bytes of CONTAINER_DATA (max!) */
4621 } PNCD_Container_Without_ID_t;
4623 typedef struct
4625 uint8_t UnionType;
4626 union
4628 PNCD_Container_Without_ID_t PNCD_Container_Without_ID;
4629 PNCD_Container_With_ID_t PNCD_Container_With_ID;
4630 } u;
4631 } PNCDContainer_t;
4633 typedef struct
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;
4643 PNCDContainer_t Container;
4644 } Packet_Neighbour_Cell_Data_t;
4646 /* < Packet Serving Cell Data message contents > */
4647 typedef struct
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!) */
4656 } Packet_Serving_Cell_Data_t;
4658 /* < Packet Measurement Order message contents > */
4659 typedef struct
4661 uint16_t START_FREQUENCY;
4662 uint8_t NR_OF_FREQUENCIES;
4663 uint8_t FREQ_DIFF_LENGTH;
4665 uint8_t Count_FREQUENCY_DIFF;
4666 uint8_t FREQUENCY_DIFF[31];/* bit (FREQ_DIFF_LENGTH) * NR_OF_FREQUENCIES --> MAX is bit(7) * 31 */
4667 } EXT_Frequency_List_t;
4669 typedef struct
4671 uint8_t MESSAGE_TYPE;
4672 uint8_t PAGE_MODE;
4674 PacketDownlinkID_t ID; /* use the PDA ID as it is the same as the PMO */
4676 uint8_t PMO_INDEX;
4677 uint8_t PMO_COUNT;
4679 uint8_t Exist_NC_Measurement_Parameters;
4680 NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4682 uint8_t Exist_EXT_Measurement_Parameters;
4684 uint8_t Exist_AdditionsR98;
4685 PMO_AdditionsR98_t AdditionsR98;
4686 } Packet_Measurement_Order_t;
4688 /* Enhanced measurement report */
4690 typedef struct
4692 uint8_t RXLEV_SERVING_CELL;
4693 } ServingCellData_t;
4695 typedef struct
4697 uint8_t BCCH_FREQ_NCELL;
4698 uint8_t BSIC;
4699 uint8_t RXLEV_NCELL;
4700 } Repeated_Invalid_BSIC_Info_t;
4702 typedef struct
4704 bool Exist_REPORTING_QUANTITY;
4705 uint8_t REPORTING_QUANTITY;
4706 } REPORTING_QUANTITY_t;
4708 typedef struct
4710 uint8_t NC_MODE;
4711 uint8_t UnionType;
4712 union
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];
4724 bool Exist_Repeated_REPORTING_QUANTITY;
4725 uint8_t Count_Repeated_Reporting_Quantity;
4726 REPORTING_QUANTITY_t Repeated_REPORTING_QUANTITY[96];
4727 } NC_MeasurementReport_t;
4729 /* Packet Handover PHO ----------------- */
4731 typedef struct
4733 uint8_t UnionType;
4734 union
4736 uint8_t MS_TimeslotAllocation;
4737 Power_Control_Parameters_t Power_Control_Parameters;
4738 } u;
4739 } GlobalTimeslotDescription_t;
4741 typedef struct
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;
4750 } PHO_DownlinkAssignment_t;
4752 typedef struct
4754 bool Exist_USF;
4755 uint8_t USF;
4756 } PHO_USF_1_7_t;
4758 typedef struct
4760 uint8_t USF_0;
4761 PHO_USF_1_7_t USF_1_7[7];
4762 uint8_t NBR_OfAllocatedTimeslots;
4763 } USF_AllocationArray_t;
4765 typedef struct
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
4782 uint8_t USF_SingleAllocation;
4783 USF_AllocationArray_t USF_AllocationArray;
4784 } u;
4785 } PHO_UplinkAssignment_t;
4787 typedef struct
4789 GlobalTimeslotDescription_t GlobalTimeslotDescription;
4790 uint8_t Exist_PHO_UA;
4791 PHO_UplinkAssignment_t PHO_UA;
4792 } GlobalTimeslotDescription_UA_t;
4794 typedef struct
4796 uint8_t Exist_ChannelCodingCommand;
4797 uint8_t ChannelCodingCommand;
4798 uint8_t Exist_GlobalTimeslotDescription_UA;
4799 GlobalTimeslotDescription_UA_t GTD_UA;
4800 uint8_t Exist_DownlinkAssignment;
4801 PHO_DownlinkAssignment_t DownlinkAssignment;
4802 } PHO_GPRS_t;
4805 typedef struct
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;
4812 } EGPRS_Description_t;
4814 typedef struct
4816 uint8_t Exist_EGPRS_Description;
4817 EGPRS_Description_t EGPRS_Description;
4818 uint8_t Exist_DownlinkAssignment;
4819 PHO_DownlinkAssignment_t DownlinkAssignment;
4820 } DownlinkTBF_t;
4822 typedef struct
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;
4831 GlobalTimeslotDescription_UA_t GTD_UA;
4832 uint8_t Exist_DownlinkTBF;
4833 DownlinkTBF_t DownlinkTBF;
4834 } PHO_EGPRS_t;
4836 typedef struct
4838 Global_Packet_Timing_Advance_t GlobalPacketTimingAdvance;
4839 uint8_t Exist_PacketExtendedTimingAdvance;
4840 uint8_t PacketExtendedTimingAdvance;
4841 } PHO_TimingAdvance_t;
4843 typedef struct
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;
4853 } NAS_Container_For_PS_HO_t;
4855 typedef struct
4857 uint8_t RRC_ContainerLength;
4858 } PS_HandoverTo_UTRAN_Payload_t;
4860 typedef struct
4862 uint8_t RRC_ContainerLength;
4863 } PS_HandoverTo_E_UTRAN_Payload_t;
4865 typedef struct
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
4893 PHO_GPRS_t PHO_GPRS_Mode;
4894 PHO_EGPRS_t PHO_EGPRS_Mode;
4895 } u;
4896 } PHO_RadioResources_t;
4898 typedef struct
4900 PHO_RadioResources_t PHO_RadioResources;
4901 uint8_t Exist_NAS_Container;
4902 NAS_Container_For_PS_HO_t NAS_Container;
4903 } PS_HandoverTo_A_GB_ModePayload_t;
4905 typedef struct
4907 uint8_t MessageType;
4908 uint8_t PageMode;
4909 Global_TFI_t Global_TFI;
4910 uint8_t ContainerID;
4911 uint8_t UnionType;
4912 union
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;
4918 } Packet_Handover_Command_t;
4920 /* End Packet Handover */
4922 /* Packet Physical Information ----------------- */
4924 typedef struct
4926 uint8_t MessageType;
4927 uint8_t PageMode;
4928 Global_TFI_t Global_TFI;
4929 uint8_t TimingAdvance;
4930 } Packet_PhysicalInformation_t;
4932 /* End Packet Physical Information */
4936 /* ADDITIONAL MS RADIO ACCESS CAPABILITIES -----------------*/
4937 typedef struct
4939 uint8_t UnionType;
4940 union
4942 Global_TFI_t Global_TFI;
4943 uint32_t TLLI;
4944 } u;
4945 } AdditionalMsRadAccessCapID_t;
4948 typedef struct
4950 uint8_t MESSAGE_TYPE;
4951 uint8_t PayloadType;
4952 uint8_t spare;
4953 uint8_t R;
4955 AdditionalMsRadAccessCapID_t ID;
4956 MS_Radio_Access_capability_t MS_Radio_Access_capability2;
4957 } Additional_MS_Rad_Access_Cap_t;
4959 /* End ADDITIONAL MS RADIO ACCESS CAPABILITIES */
4962 /* Packet Pause -----------------*/
4964 typedef struct
4966 uint8_t MESSAGE_TYPE;
4968 uint32_t TLLI;
4969 uint8_t RAI[48/8];
4970 } Packet_Pause_t;
4972 /* End Packet Pause */
4975 /* < Payload Type Data MAC Header content > */
4976 typedef struct
4978 uint8_t Payload_Type;
4979 uint8_t Countdown_Value;
4980 uint8_t SI;
4981 uint8_t R;
4982 } UL_Data_Mac_Header_t;
4984 typedef struct
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;
4993 } UL_Data_Block_GPRS_t;
4995 typedef struct
4997 uint8_t MESSAGE_TYPE;
4998 uint8_t CTRL_ACK;
4999 }UL_Packet_Control_Ack_11_t;
5001 typedef struct
5003 uint8_t MESSAGE_TYPE;
5004 uint8_t TN_RRBP;
5005 uint8_t CTRL_ACK;
5006 }UL_Packet_Control_Ack_TN_RRBP_11_t;
5008 typedef struct
5010 uint8_t MESSAGE_TYPE;
5011 uint8_t CTRL_ACK;
5012 }UL_Packet_Control_Ack_8_t;
5014 typedef struct
5016 uint8_t MESSAGE_TYPE;
5017 uint8_t TN_RRBP;
5018 uint8_t CTRL_ACK;
5019 }UL_Packet_Control_Ack_TN_RRBP_8_t;
5021 typedef struct
5023 uint8_t Payload_Type;
5024 uint8_t RRBP;
5025 uint8_t S_P;
5026 uint8_t USF;
5027 } DL_Data_Mac_Header_t;
5029 typedef struct
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;
5037 } DL_Data_Block_GPRS_t;
5039 typedef struct
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;
5056 } DL_Data_Block_EGPRS_Header_t;
5058 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type1_t;
5059 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type2_t;
5060 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type3_t;
5061 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EC_EGPRS_Header_Type1_t;
5062 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EC_EGPRS_Header_Type2_t;
5063 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EC_EGPRS_Header_Type3_t;
5065 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type1_EC_t;
5067 typedef struct
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;
5086 } UL_Data_Block_EGPRS_Header_t;
5088 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type1_t;
5089 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type2_t;
5090 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type3_t;
5091 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EC_EGPRS_Header_Type1_t;
5092 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EC_EGPRS_Header_Type2_t;
5093 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EC_EGPRS_Header_Type3_t;
5095 typedef struct
5097 uint8_t DOWNLINK_TFI;
5098 uint8_t Exist_Wait;
5099 uint8_t WAIT_INDICATION;
5100 uint8_t WAIT_INDICATION_SIZE;
5102 EC_Reject_t;
5104 typedef struct
5106 uint8_t MESSAGE_TYPE;
5107 uint8_t USED_DL_COVERAGE_CLASS;
5108 uint8_t Reject_Count;
5109 EC_Reject_t Reject[16];
5111 EC_Packet_Access_Reject_t;
5113 typedef struct
5115 uint8_t EC_MA_NUMBER;
5116 uint8_t TSC;
5117 uint8_t Primary_TSC_Set;
5119 EC_Frequency_Parameters_t;
5121 typedef struct {
5122 uint8_t TIMING_ADVANCE_VALUE;
5123 } EC_Packet_Timing_Advance_t;
5125 typedef struct
5127 uint8_t MESSAGE_TYPE;
5128 uint8_t USED_DL_COVERAGE_CLASS;
5129 Global_TFI_t Global_TFI;
5130 uint8_t CONTROL_ACK;
5132 bool Exist_Frequency_Parameters;
5133 EC_Frequency_Parameters_t Frequency_Parameters;
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;
5142 bool Exist_EC_Packet_Timing_Advance;
5143 EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5145 bool Exist_P0_and_PR_MODE;
5146 uint8_t P0;
5147 uint8_t PR_MODE;
5149 bool Exist_GAMMA;
5150 uint8_t GAMMA;
5152 uint8_t ALPHA_Enable;
5155 EC_Packet_Downlink_Assignment_t;
5157 typedef struct
5159 uint8_t MESSAGE_TYPE;
5160 uint8_t USED_DL_COVERAGE_CLASS;
5161 Global_TFI_t Global_TFI;
5162 uint8_t TYPE_OF_ACK;
5164 EC_Packet_Polling_Req_t;
5166 typedef struct
5168 uint8_t MESSAGE_TYPE;
5169 uint8_t USED_DL_COVERAGE_CLASS;
5170 Global_TFI_t Global_TFI;
5172 bool Exist_T_AVG_T;
5173 uint8_t T_AVG_T;
5175 bool Exist_EC_Packet_Timing_Advance;
5176 EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5178 bool Exist_GAMMA;
5179 uint8_t GAMMA;
5181 EC_Packet_Power_Control_Timing_Advance_t;
5183 typedef struct
5185 uint8_t MESSAGE_TYPE;
5186 uint8_t USED_DL_COVERAGE_CLASS;
5187 Global_TFI_t Global_TFI;
5188 uint8_t TBF_RELEASE_CAUSE;
5190 uint8_t Exist_Wait;
5191 uint8_t WAIT_INDICATION;
5192 uint8_t WAIT_INDICATION_SIZE;
5194 EC_Packet_Tbf_Release_t;
5196 typedef struct{
5197 bool Exist_DELAY_NEXT_UL_RLC_DATA_BLOCK;
5198 uint8_t DELAY_NEXT_UL_RLC_DATA_BLOCK;
5200 FUA_Delay_t;
5202 typedef struct
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 */
5210 PUAN_Fixed_Uplink_Allocation_t;
5212 typedef struct{
5213 uint8_t STARTING_SEQUENCE_NUMBER;
5214 uint16_t RECEIVED_BLOCK_BITMAP;
5216 EC_AckNack_Description_t;
5218 typedef struct{
5219 uint8_t STARTING_SEQUENCE_NUMBER;
5220 uint8_t RECEIVED_BLOCK_BITMAP;
5222 EC_Primary_AckNack_Description_t;
5224 typedef struct{
5225 uint32_t CONTENTION_RESOLUTION_TLLI;
5226 EC_Primary_AckNack_Description_t EC_AckNack_Description;
5228 EC_Primary_AckNack_Description_TLLI_t;
5230 typedef struct{
5231 uint32_t CONTENTION_RESOLUTION_rTLLI;
5232 EC_Primary_AckNack_Description_t EC_AckNack_Description;
5234 EC_Primary_AckNack_Description_rTLLI_t;
5236 typedef struct{
5237 uint8_t EC_AckNack_Description_Type;
5238 union
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;
5245 PUAN_Fixed_Uplink_Allocation_t PUAN_Fixed_Uplink_Allocation;
5246 uint8_t RESEGMENT;
5248 bool Exist_EGPRS_Channel_Coding_Command;
5249 uint8_t EGPRS_Channel_Coding_Command;
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;
5257 } EC_Packet_Uplink_Ack_Nack_fai0_t;
5258 typedef struct{
5259 bool Exist_CONTENTION_RESOLUTION_TLLI;
5260 uint32_t CONTENTION_RESOLUTION_TLLI;
5262 bool Exist_MONITOR_EC_PACCH;
5263 uint8_t T3238;
5264 uint8_t Initial_Waiting_Time;
5265 uint8_t EC_PACCH_Monitoring_Pattern;
5267 } EC_Packet_Uplink_Ack_Nack_fai1_t;
5269 typedef struct
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
5277 EC_Packet_Uplink_Ack_Nack_fai0_t fai0;
5278 EC_Packet_Uplink_Ack_Nack_fai1_t fai1;
5279 } u;
5281 bool Exist_EC_Packet_Timing_Advance;
5282 EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5284 bool Exist_GAMMA;
5285 uint8_t GAMMA;
5286 uint8_t ALPHA_Enable;
5288 EC_Packet_Uplink_Ack_Nack_t;
5290 typedef struct
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 */
5296 Fixed_Uplink_Allocation_t;
5298 typedef struct
5300 uint8_t MESSAGE_TYPE;
5301 uint8_t USED_DL_COVERAGE_CLASS;
5302 Global_TFI_t Global_TFI;
5304 bool Exist_UPLINK_TFI_ASSIGNMENT;
5305 uint8_t UPLINK_TFI_ASSIGNMENT;
5307 bool Exist_EGPRS_Channel_Coding_Command;
5308 uint8_t EGPRS_Channel_Coding_Command;
5310 uint8_t Overlaid_CDMA_Code;
5312 bool Exist_EC_Packet_Timing_Advance;
5313 EC_Packet_Timing_Advance_t EC_Packet_Timing_Advance;
5315 bool Exist_Frequency_Parameters;
5316 EC_Frequency_Parameters_t Frequency_Parameters;
5318 uint8_t UL_COVERAGE_CLASS;
5319 uint8_t STARTING_UL_TIMESLOT;
5320 uint8_t TIMESLOT_MULTIPLICATOR;
5322 Fixed_Uplink_Allocation_t Fixed_Uplink_Allocation;
5324 bool Exist_P0_and_PR_MODE;
5325 uint8_t P0;
5326 uint8_t PR_MODE;
5328 bool Exist_GAMMA;
5329 uint8_t GAMMA;
5330 uint8_t ALPHA_Enable;
5332 uint8_t DL_COVERAGE_CLASS;
5333 uint8_t STARTING_DL_TIMESLOT_OFFSET;
5336 EC_Packet_Uplink_Assignment_t;
5338 typedef struct
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;
5346 Fixed_Uplink_Allocation_t PUANCR_Fixed_Uplink_Allocation;
5347 uint8_t RESEGMENT;
5349 EC_Packet_Uplink_Ack_Nack_And_Contention_Resolution_t;
5351 typedef struct
5353 uint8_t MESSAGE_TYPE;
5354 uint8_t USED_DL_COVERAGE_CLASS;
5356 EC_Packet_Downlink_Dummy_Control_Block_t;
5358 typedef struct
5360 uint8_t MESSAGE_TYPE;
5361 uint32_t TLLI;
5362 uint8_t CTRL_ACK;
5363 uint8_t DL_CC_EST;
5365 EC_Packet_Control_Acknowledgement_t;
5367 typedef struct
5369 uint8_t PRIORITY;
5370 uint8_t NUMBER_OF_UL_DATA_BLOCKS;
5372 EC_Channel_Request_Description_t;
5374 typedef struct
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;
5384 EC_Channel_Quality_Report_t;
5386 typedef struct
5388 uint8_t MESSAGE_TYPE;
5389 uint8_t DOWNLINK_TFI;
5390 uint8_t MS_OUT_OF_MEMORY;
5391 uint8_t Final_Ack_Indicator;
5393 EC_AckNack_Description_t EC_AckNack_Description;
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;
5399 bool Exist_EC_Channel_Request_Description;
5400 EC_Channel_Request_Description_t EC_Channel_Request_Description;
5402 EC_Packet_Downlink_Ack_Nack_t;
5405 < NC Measurement Parameters struct > ::=
5406 < NETWORK_CONTROL_ORDER : bit (2) >
5407 { 0 | 1 < NC_ NON_DRX_PERIOD : bit (3) >
5408 < NC_REPORTING_PERIOD_I : bit (3) >
5409 < NC_REPORTING_PERIOD_T : bit (3) > } ;
5410 < Cell Selection struct > ::=
5411 < EXC_ACC : bit >
5412 < CELL_BAR_ACCESS_2 : bit (1) >
5413 < SAME_RA_AS_SERVING_CELL : bit (1) >
5414 { 0 | 1 < GPRS_RXLEV_ACCESS_MIN : bit (6) >
5415 < GPRS_MS_TXPWR_MAX_CCH : bit (5) > }
5416 { 0 | 1 < GPRS_TEMPORARY_OFFSET : bit (3) >
5417 < GPRS_PENALTY_TIME : bit (5) > }
5418 Table 25 (concluded): PACKET CELL CHANGE ORDER message content
5419 { 0 | 1 < GPRS_RESELECT_OFFSET : bit (5) > }
5420 { 0 | 1 < HCS params : < HCS struct > > }
5421 { 0 | 1 < SI13_PBCCH_LOCATION : < SI13_PBCCH_LOCATION struct > > } ;
5423 < SI13_PBCCH_LOCATION struct > ::=
5424 { 0 < SI13_LOCATION : bit (1) >
5425 | 1 < PBCCH_LOCATION : bit (2) >
5426 < PSI1_REPEAT_PERIOD : bit (4) > } ;
5428 < HCS struct > ::=
5429 < GPRS_PRIORITY_CLASS : bit (3) >
5430 < GPRS_HCS_THR : bit (5) > ;
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
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
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
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
5501 typedef enum
5503 RLCMAC_PRACH = 0x20,
5504 RLCMAC_CS1 = 0x21,
5505 RLCMAC_CS2 = 0x22,
5506 RLCMAC_CS3 = 0x23,
5507 RLCMAC_CS4 = 0x24,
5508 RLCMAC_HDR_TYPE_1 = 0x31,
5509 RLCMAC_HDR_TYPE_2 = 0x32,
5510 RLCMAC_HDR_TYPE_3 = 0x33,
5511 RLCMAC_HDR_TYPE_4 = 0x34,
5512 RLCMAC_HDR_TYPE_5 = 0x35,
5513 RLCMAC_HDR_TYPE_6 = 0x36,
5514 RLCMAC_HDR_TYPE_7 = 0x37,
5515 RLCMAC_HDR_TYPE_8 = 0x38,
5516 RLCMAC_HDR_TYPE_9 = 0x39,
5517 RLCMAC_HDR_TYPE_10 = 0x3a,
5518 RLCMAC_EC_CS1 = 0x40,
5519 RLCMAC_HDR_TYPE_1_EC = 0x41,
5520 RLCMAC_HDR_TYPE_2_EC = 0x42,
5521 RLCMAC_HDR_TYPE_3_EC = 0x43
5522 }RLCMAC_block_format_t;
5524 /* < Downlink RLC/MAC control message > */
5525 typedef struct
5527 union
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;
5568 RLCMAC_block_format_t block_format;
5569 unsigned flags;
5570 } RlcMacDownlink_t;
5572 typedef int16_t MSGGPRS_Status_t;
5573 /* < Uplink RLC/MAC control message > */
5574 typedef struct
5576 union
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;
5604 } RlcMacUplink_t;
5606 typedef struct
5608 uint16_t bsn1;
5609 uint16_t bsn2;
5610 uint8_t pi;
5611 }egprs_ul_header_info_t;
5613 typedef struct
5615 uint16_t bsn1;
5616 uint16_t bsn2;
5617 }egprs_dl_header_info_t;
5619 typedef struct
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
5631 egprs_ul_header_info_t egprs_ul_header_info;
5632 egprs_dl_header_info_t egprs_dl_header_info;
5634 } RlcMacPrivateData_t;
5637 #if 0
5638 void GPRSMSG_Profile(int16_t i);
5639 #endif
5641 /* SI1_RestOctet_t */
5643 typedef struct
5645 bool Exist_NCH_Position;
5646 uint8_t NCH_Position;
5648 uint8_t BandIndicator;
5649 } SI1_RestOctet_t;
5651 /* SI3_Rest_Octet_t */
5652 typedef struct
5654 uint8_t CBQ;
5655 uint8_t CELL_RESELECT_OFFSET;
5656 uint8_t TEMPORARY_OFFSET;
5657 uint8_t PENALTY_TIME;
5658 } Selection_Parameters_t;
5660 typedef struct
5662 uint8_t Exist_Selection_Parameters;
5663 Selection_Parameters_t Selection_Parameters;
5665 uint8_t Exist_Power_Offset;
5666 uint8_t Power_Offset;
5668 uint8_t System_Information_2ter_Indicator;
5669 uint8_t Early_Classmark_Sending_Control;
5671 uint8_t Exist_WHERE;
5672 uint8_t WHERE;
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;
5680 } SI3_Rest_Octet_t;
5682 typedef struct
5684 uint8_t Exist_Selection_Parameters;
5685 Selection_Parameters_t Selection_Parameters;
5687 uint8_t Exist_Power_Offset;
5688 uint8_t Power_Offset;
5690 uint8_t Exist_GPRS_Indicator;
5691 uint8_t RA_COLOUR;
5692 uint8_t SI13_POSITION;
5693 } SI4_Rest_Octet_t;
5695 #if 0
5696 typedef SI4_Rest_Octet_t SI7_Rest_Octet_t;
5697 typedef SI4_Rest_Octet_t SI8_Rest_Octet_t;
5698 #endif
5700 /* SI6_RestOctet_t */
5702 typedef struct
5704 uint8_t PagingChannelRestructuring;
5705 uint8_t NLN_SACCH;
5707 bool Exist_CallPriority;
5708 uint8_t CallPriority;
5710 uint8_t NLN_Status;
5711 } PCH_and_NCH_Info_t;
5713 typedef struct
5715 bool Exist_PCH_and_NCH_Info;
5716 PCH_and_NCH_Info_t PCH_and_NCH_Info;
5718 bool Exist_VBS_VGCS_Options;
5719 uint8_t VBS_VGCS_Options;
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
5725 bool Exist_DTM_Support;
5726 uint8_t RAC;
5727 uint8_t MAX_LAPDm;
5729 uint8_t BandIndicator; /* bit(1) L/H, L => ARFCN in 1800 band H => ARFCN in 1900 band */
5730 } SI6_RestOctet_t;
5732 /*************************************************
5733 * Enhanced Measurement Report. TS 04.18 9.1.55. *
5734 *************************************************/
5736 typedef struct
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;
5744 } EMR_ServingCell_t;
5746 typedef struct
5748 uint8_t RR_Short_PD;
5749 uint8_t MESSAGE_TYPE;
5750 uint8_t ShortLayer2_Header;
5752 BA_USED_t BA_USED;
5753 uint8_t BSIC_Seen;
5755 uint8_t SCALE;
5757 uint8_t Exist_ServingCellData;
5758 EMR_ServingCell_t ServingCellData;
5760 uint8_t Count_RepeatedInvalid_BSIC_Info; /* Number of instances */
5761 RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
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];
5767 } EnhancedMeasurementReport_t;
5769 extern const uint8_t gsm_rlcmac_gprs_cs_to_block_length[];
5770 extern const uint8_t gsm_rlcmac_egprs_header_type_to_dl_header_block_length[];
5771 extern const uint8_t gsm_rlcmac_egprs_header_type_to_ul_header_block_length[];
5772 extern const uint8_t gsm_rlcmac_egprs_mcs_to_data_block_length[];
5774 #endif /* __PACKET_GSM_RLCMAC_H__ */
5777 * Editor modelines - https://www.wireshark.org/tools/modelines.html
5779 * Local Variables:
5780 * c-basic-offset: 2
5781 * tab-width: 8
5782 * indent-tabs-mode: nil
5783 * End:
5785 * vi: set shiftwidth=2 tabstop=8 expandtab:
5786 * :indentSize=2:tabSize=8:noTabs=true: