HACK: pinfo->private_data points to smb_info again
[wireshark-wip.git] / epan / dissectors / packet-gsm_rlcmac.h
blobde2e8412ab40b44cde0aabd0c28e7f7365051ed5
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 * $Id$
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, write to the Free Software
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
29 #ifndef __PACKET_GSM_RLCMAC_H__
30 #define __PACKET_GSM_RLCMAC_H__
32 #ifndef PRE_PACKED
33 #define PRE_PACKED
34 #endif
36 #ifndef POST_PACKED
37 #define POST_PACKED
38 #endif
40 #define GSM_RLC_MAC_MAGIC_NUMBER 0x67707273
42 typedef guint8 TFI_t;
44 typedef guint8 N32_t;
45 typedef guint8 N51_t;
46 typedef guint8 N26_t;
48 /* Starting Time IE as specified in 04.08 */
49 typedef struct
51 N32_t N32; /* 04.08 refers to T1' := (FN div 1326) mod 32 */
52 N51_t N51; /* 04.08 refers to T3 := FN mod 51 */
53 N26_t N26; /* 04.08 refers to T2 := FN mod 26 */
54 } StartingTime_t;
56 typedef struct
58 guint8 UnionType;/* UnionType is index */
59 union
61 guint8 UPLINK_TFI;
62 guint8 DOWNLINK_TFI;
63 } u;
64 } Global_TFI_t;
66 typedef struct
68 guint8 UnionType;
69 union
71 StartingTime_t StartingTime;
72 guint16 k;
73 } u;
74 } Starting_Frame_Number_t;
76 typedef struct
78 guint8 FINAL_ACK_INDICATION;
79 guint8 STARTING_SEQUENCE_NUMBER;
80 guint8 RECEIVED_BLOCK_BITMAP[64/8];
81 } Ack_Nack_Description_t;
84 typedef struct
86 guint8 Exist_TIMING_ADVANCE_VALUE;
87 guint8 TIMING_ADVANCE_VALUE;
89 guint8 Exist_IndexAndtimeSlot;
90 guint8 TIMING_ADVANCE_INDEX;
91 guint8 TIMING_ADVANCE_TIMESLOT_NUMBER;
92 } Packet_Timing_Advance_t;
94 typedef struct
96 guint8 ALPHA;
98 struct
100 guint8 Exist;
101 guint8 GAMMA_TN;
102 } Slot[8];
103 } Power_Control_Parameters_t;
105 typedef struct
107 guint8 ALPHA;
108 guint8 T_AVG_W;
109 guint8 T_AVG_T;
110 guint8 Pb;
111 guint8 PC_MEAS_CHAN;
112 guint8 INT_MEAS_CHANNEL_LIST_AVAIL;
113 guint8 N_AVG_I;
114 } Global_Power_Control_Parameters_t;
116 typedef struct
118 guint8 Exist_TIMING_ADVANCE_VALUE;
119 guint8 TIMING_ADVANCE_VALUE;
121 guint8 Exist_UPLINK_TIMING_ADVANCE;
122 guint8 UPLINK_TIMING_ADVANCE_INDEX;
123 guint8 UPLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
125 guint8 Exist_DOWNLINK_TIMING_ADVANCE;
126 guint8 DOWNLINK_TIMING_ADVANCE_INDEX;
127 guint8 DOWNLINK_TIMING_ADVANCE_TIMESLOT_NUMBER;
128 } Global_Packet_Timing_Advance_t;
131 typedef struct
133 guint8 C_VALUE;
134 guint8 RXQUAL;
135 guint8 SIGN_VAR;
137 struct
139 guint8 Exist;
140 guint8 I_LEVEL_TN;
141 } Slot[8];
142 } Channel_Quality_Report_t;
144 typedef enum
146 RLC_MODE_ACKNOWLEDGED = 0,
147 RLC_MODE_UNACKNOWLEDGED = 1
148 } RLC_MODE_t;
150 typedef struct
152 guint8 PEAK_THROUGHPUT_CLASS;
153 guint8 RADIO_PRIORITY;
154 RLC_MODE_t RLC_MODE;
155 guint8 LLC_PDU_TYPE;
156 guint16 RLC_OCTET_COUNT;
157 } Channel_Request_Description_t;
159 typedef struct
161 guint16 RANDOM_ACCESS_INFORMATION;
162 guint8 FRAME_NUMBER[2];
163 } Packet_Request_Reference_t;
165 typedef PRE_PACKED struct
167 guint8 nsapi;
168 guint8 value;
169 } Receive_N_PDU_Number_t POST_PACKED;
171 typedef PRE_PACKED struct
173 guint8 IEI;
174 guint8 Length;
176 guint8 Count_Receive_N_PDU_Number;
177 Receive_N_PDU_Number_t Receive_N_PDU_Number[11];
178 } Receive_N_PDU_Number_list_t POST_PACKED;
180 /** IMSI length */
181 #define IMSI_LEN 9
183 /** TMSI length */
184 #define TMSI_LEN 4
186 typedef struct
188 guint8 MCC1;
189 guint8 MCC2;
190 guint8 MCC3;
191 guint8 MNC3;
192 guint8 MNC1;
193 guint8 MNC2;
194 } PLMN_t;
197 /** This type is used to describe LAI codes */
198 typedef PRE_PACKED struct
200 PLMN_t PLMN;
201 guint16 LAC;
202 } LAI_t POST_PACKED;
205 /** Length of LAI */
206 #define LAI_LEN (sizeof(LAI_t))
208 typedef struct
210 guint8 TMSI[TMSI_LEN];
211 } TMSI_t;
213 typedef guint16 CellId_t;
216 #define CKSN_NOT_VALID 7
218 #define IMEI_LEN 9
220 #define IMEISV_LEN 10
222 #define MAX_ELEMENTS_IN_EQPLMN_LIST 16
225 typedef struct
227 guint8 NUMBER_CELLS;
228 guint8 CCN_SUPPORTED[16]; /* bit (1), max size: 16 x 8 => 128 bits */
229 } CCN_Support_Description_t;
231 typedef struct
233 guint8 UnionType;
234 union
236 guint8 LSA_ID;
237 guint8 ShortLSA_ID;
238 } u;
239 } LSA_ID_Info_Element_t;
241 #define LSA_ID_INFO_ELEMENTS_MAX (16)
243 typedef struct
245 guint8 Count_LSA_ID_Info_Element;
246 LSA_ID_Info_Element_t LSA_ID_Info_Elements[LSA_ID_INFO_ELEMENTS_MAX];
247 } LSA_ID_Info_t;
249 #define NR_OF_FREQ_OR_CELLS_MAX (32)
251 typedef struct
253 guint8 NR_OF_FREQ_OR_CELLS;
254 LSA_ID_Info_t LSA_ID_Info[NR_OF_FREQ_OR_CELLS_MAX];
255 } LSA_Parameters_t;
257 #define MAX_REPORT_PRIORITY_CELLS (16)
259 typedef struct
261 guint8 NUMBER_CELLS;
262 guint8 REPORT_PRIORITY[MAX_REPORT_PRIORITY_CELLS];
263 } ReportPriority_t;
265 typedef ReportPriority_t GPRSReportPriority_t;
267 typedef struct
269 guint8 REPORTING_OFFSET;
270 guint8 REPORTING_THRESHOLD;
271 } OffsetThreshold_t;
274 typedef struct
276 guint8 Exist_MULTI_BAND_REPORTING;
277 guint8 MULTI_BAND_REPORTING;
279 guint8 Exist_SERVING_BAND_REPORTING;
280 guint8 SERVING_BAND_REPORTING;
282 /* Warning:
284 * SI2quater, MI, PMO, and PCCO always specify Scale Ord. There is no
285 * "exist SCALE_ORD" bit in the CSN.1 descriptions for these messages.
286 * However, this struct is shared with the PSI5 message which may or may
287 * not specify SCALE_ORD, thus necessitating the inclusion of member
288 * Exist_SCALE_ORD in the struct. This member is never set for SI2quater, MI,
289 * PMO, and PCCO so to check it (in these cases) would be erroneous.
291 guint8 Exist_SCALE_ORD;
292 guint8 SCALE_ORD;
294 guint8 Exist_OffsetThreshold900;
295 OffsetThreshold_t OffsetThreshold900;
297 guint8 Exist_OffsetThreshold1800;
298 OffsetThreshold_t OffsetThreshold1800;
300 guint8 Exist_OffsetThreshold400;
301 OffsetThreshold_t OffsetThreshold400;
303 guint8 Exist_OffsetThreshold1900;
304 OffsetThreshold_t OffsetThreshold1900;
306 guint8 Exist_OffsetThreshold850;
307 OffsetThreshold_t OffsetThreshold850;
309 } MeasurementParams_t;
311 typedef struct
313 guint8 Exist_FDD_REPORTING_THRESHOLD_2;
314 guint8 FDD_REPORTING_THRESHOLD_2;
315 } GPRS_AdditionalMeasurementParams3G_t;
318 typedef struct
320 guint8 NETWORK_CONTROL_ORDER;
322 guint8 Exist_NC;
323 guint8 NC_NON_DRX_PERIOD;
324 guint8 NC_REPORTING_PERIOD_I;
325 guint8 NC_REPORTING_PERIOD_T;
326 } NC_Measurement_Parameters_t;
330 **========================================================================
331 ** Global types
332 **========================================================================
335 struct MobileId /* Mobile id, -> TMSI, IMEI or IMSI */
337 guint8 Length;
338 guint8 IdType;
339 guint8 OddEven;
340 guint8 Dig1;
341 union
343 unsigned char TMSI[TMSI_LEN];
344 unsigned char IMEI[IMEI_LEN - 2];
345 unsigned char IMSI[IMEI_LEN - 2];
346 unsigned char IMEISV[IMEISV_LEN - 2];
347 } Id;
350 #if 0
351 struct OV_MobileId /* Struct for optional mobile identity */
353 unsigned char IEI;
354 struct MobileId MV;
357 #define LAC_INVALID 0xFEFF
359 typedef enum
361 LAI_PRIORITY_AVAILABLE,
362 LAI_PRIORITY_FORBIDDEN,
363 LAI_PRIORITY_FORCED
364 } LAI_Priority_t;
366 typedef enum
368 NOM_I,
369 NOM_II,
370 NOM_III,
371 NOM_GSM,
372 NOM_PS_ONLY,
373 NOM_UNKNOWN
374 } NMO_t;
376 typedef enum
378 COMBINED,
379 NOT_COMBINED,
380 SAME_AS_BEFORE
381 } ProcedureMode_t;
383 typedef struct
385 guint8 Cause;
386 LAI_t LAI;
387 struct OV_MobileId MobileId;
388 } CombinedResult_t;
390 typedef enum
392 R97,
394 } MSCR_t, SGSNR_t;
396 typedef struct
398 guint8 NbrOfElements;
399 PLMN_t Element[MAX_ELEMENTS_IN_EQPLMN_LIST];
400 } EqPLMN_List_t;
401 #endif
403 #define MAX_PCCCH 16
404 #define MAX_RFL_LENGTH 16 /* length of RFL in PSI2 */
405 #define MAX_RFLS 4 /* Max number of RFLs */
406 #define MAX_MA_LISTS_IN_PSI2 8 /* MAX MA lists = 8 */
407 #define MAX_ALLOCATION_BITMAP_LENGTH 128 /* max length of Fixed Allocation bitmap in BITS (2^7) */
408 #define MAX_VAR_LENGTH_BITMAP_LENGTH 176 /* max length ever possible for variable length fixed allocation bitmap */
409 #define MAX_RRC_CONTAINER_LENGTH 255
410 #define MAX_NAS_CONTAINER_LENGTH 127
413 typedef struct
415 guint8 MA_LENGTH;/* =(MA_BitLength +7) MA_BitLength_ converted to bytes */
416 guint8 MA_BITMAP[(63+1)/8];/* : bit (val (MA_LENGTH) + 1) > */
417 /* The above should not change order! */
418 guint8 MA_BitLength;
419 } MobileAllocation_t;
421 typedef struct
423 guint8 ElementsOf_ARFCN_INDEX;
424 guint8 ARFCN_INDEX[16];
425 } ARFCN_index_list_t;
427 typedef struct
429 guint8 HSN;
431 guint8 ElementsOf_RFL_NUMBER;
432 guint8 RFL_NUMBER[4];
434 guint8 UnionType;
435 union
437 MobileAllocation_t MA;
438 ARFCN_index_list_t ARFCN_index_list;
439 } u;
440 } GPRS_Mobile_Allocation_t;
442 /* < EGPRS Ack/Nack Description >
443 * CRBB - Compressed Received Blocks Bitmap
444 * URBB - Uncompressed Received Blocks Bitmap
446 #define EGPRS_ACK_NACK_MAX_BITS 0x0FF /* 255 bits/32 bytes */
447 #define CRBB_MAX_BITS 0x07F /* 127 bits/16 bytes */
448 #define URBB_MAX_BITS 0x150 /* 336 bits/42 bytes */
450 typedef struct
452 guint8 FINAL_ACK_INDICATION;
453 guint8 BEGINNING_OF_WINDOW;
454 guint8 END_OF_WINDOW;
455 guint16 STARTING_SEQUENCE_NUMBER;
457 gboolean Exist_CRBB;
458 guint8 CRBB_LENGTH;
459 guint8 CRBB_STARTING_COLOR_CODE;
460 guint8 CRBB[CRBB_MAX_BITS/8 + 1];
462 guint16 URBB_LENGTH;
463 guint8 URBB[URBB_MAX_BITS/8];
464 } EGPRS_AckNack_Desc_t;
466 typedef struct
468 guint8 UnionType;
469 EGPRS_AckNack_Desc_t Desc;
470 } EGPRS_AckNack_t;
472 typedef struct
474 guint8 LENGTH;
475 EGPRS_AckNack_Desc_t Desc;
476 } EGPRS_AckNack_w_len_t;
479 /* <P1 Rest Octets>
480 * <P2 Rest Octets>
482 #if 0
483 #define SF_VBS 0 /* VBS (broadcast call reference) */
484 #define SF_VGCS 1 /* VGCS (group call reference) */
486 #define AF_AckIsNotRequired 0 /* acknowledgement is not required */
487 #define AF_AckIsRequired 1 /* acknowledgement is required */
488 #endif
490 typedef struct
492 guint32 value;
493 guint8 SF;
494 guint8 AF;
495 guint8 call_priority;
496 guint8 Ciphering_information;
497 } Group_Call_Reference_t;
499 /* Mobile allocation is coded differently but uses the same type! */
500 typedef struct
502 guint8 Length;
503 guint8 MA[8];
504 } MobileAllocationIE_t;
506 typedef struct
508 guint8 UnionType;
509 union
511 MobileAllocationIE_t MA;
512 guint8 Frequency_Short_List[64/8];
513 } u;
514 } MobileAllocation_or_Frequency_Short_List_t;
516 typedef struct
518 guint8 spare;
519 guint16 ARFCN;
520 } SingleRFChannel_t;
522 typedef struct
524 guint8 MAIO;
525 guint8 HSN;
526 } RFHoppingChannel_t;
528 typedef struct
530 guint8 Channel_type_and_TDMA_offset;
531 guint8 TN;
532 guint8 TSC;
534 guint8 UnionType;
535 union
537 SingleRFChannel_t SingleRFChannel;
538 RFHoppingChannel_t RFHoppingChannel;
539 } u;
540 } Channel_Description_t;
542 typedef struct
544 Channel_Description_t Channel_Description;
546 guint8 Exist_Hopping;
547 MobileAllocation_or_Frequency_Short_List_t MA_or_Frequency_Short_List;
549 } Group_Channel_Description_t;
551 typedef struct
553 Group_Call_Reference_t Group_Call_Reference;
555 guint8 Exist_Group_Channel_Description;
556 Group_Channel_Description_t Group_Channel_Description;
557 } Group_Call_information_t;
559 typedef struct
561 guint8 Exist_NLN_PCH_and_NLN_status;
562 guint8 NLN_PCH;
563 guint8 NLN_status;
565 guint8 Exist_Priority1;
566 guint8 Priority1;
568 guint8 Exist_Priority2;
569 guint8 Priority2;
571 guint8 Exist_Group_Call_information;
572 Group_Call_information_t Group_Call_information;
574 guint8 Packet_Page_Indication_1;
575 guint8 Packet_Page_Indication_2;
576 } P1_Rest_Octets_t;
578 typedef struct
580 guint8 Exist_CN3;
581 guint8 CN3;
583 guint8 Exist_NLN_and_status;
584 guint8 NLN;
585 guint8 NLN_status;
587 guint8 Exist_Priority1;
588 guint8 Priority1;
590 guint8 Exist_Priority2;
591 guint8 Priority2;
593 guint8 Exist_Priority3;
594 guint8 Priority3;
596 guint8 Packet_Page_Indication_3;
597 } P2_Rest_Octets_t;
599 /* <IA Rest Octets> incl additions for R99 and EGPRS */
601 typedef struct
603 guint8 USF;
604 guint8 USF_GRANULARITY;
606 guint8 Exist_P0_PR_MODE;
607 guint8 P0;
608 guint8 PR_MODE;
609 } DynamicAllocation_t;
611 typedef struct
613 gboolean Exist_ALPHA;
614 guint8 ALPHA;
616 guint8 GAMMA;
617 StartingTime_t TBF_STARTING_TIME;
618 guint8 NR_OF_RADIO_BLOCKS_ALLOCATED;
620 gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
621 guint8 P0;
622 guint8 BTS_PWR_CTRL_MODE;
623 guint8 PR_MODE;
624 } EGPRS_TwoPhaseAccess_t;
626 typedef struct
628 guint8 TFI_ASSIGNMENT;
629 guint8 POLLING;
631 guint8 UnionType;
632 union
634 DynamicAllocation_t DynamicAllocation;
635 guint8 FixedAllocationDummy; /* Fixed Allocation was removed */
636 } Allocation;
638 guint8 EGPRS_CHANNEL_CODING_COMMAND;
639 guint8 TLLI_BLOCK_CHANNEL_CODING;
641 gboolean Exist_BEP_PERIOD2;
642 guint8 BEP_PERIOD2;
644 guint8 RESEGMENT;
645 guint8 EGPRS_WindowSize;
647 gboolean Exist_ALPHA;
648 guint8 ALPHA;
650 guint8 GAMMA;
652 gboolean Exist_TIMING_ADVANCE_INDEX;
653 guint8 TIMING_ADVANCE_INDEX;
655 gboolean Exist_TBF_STARTING_TIME;
656 StartingTime_t TBF_STARTING_TIME;
657 } EGPRS_OnePhaseAccess_t;
659 #define MAX_ACCESS_TECHOLOGY_TYPES 12
661 typedef struct
663 guint8 ExtendedRA;
665 guint8 NrOfAccessTechnologies;
666 guint8 AccessTechnologyType[MAX_ACCESS_TECHOLOGY_TYPES];
668 guint8 UnionType;
669 union
671 EGPRS_TwoPhaseAccess_t TwoPhaseAccess; /* 04.18/10.5.2.16 Multiblock allocation */
672 EGPRS_OnePhaseAccess_t OnePhaseAccess; /* 04.60/10.5.2.16 TFI using Dynamic or Fixed Allocation */
673 } Access;
674 } IA_EGPRS_00_t;
676 typedef struct
678 guint8 UnionType;
679 union
681 IA_EGPRS_00_t IA_EGPRS_PUA; /* 00 < EGPRS Packet Uplink Assignment >*/
682 guint8 IA_EGPRS_01; /* 01 reserved for future use */
683 guint8 IA_EGPRS_1; /* 1 reserved for future use */
684 } u;
685 } IA_EGPRS_t;
687 typedef struct
689 guint8 Length;
690 guint8 MAIO;
691 guint8 MobileAllocation[62];
692 } IA_FreqParamsBeforeTime_t;
694 typedef struct
696 gboolean Exist_ALPHA;
697 guint8 ALPHA;
699 guint8 GAMMA;
700 guint8 R97_CompatibilityBits;
701 StartingTime_t TBF_STARTING_TIME;
703 gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
704 guint8 P0;
705 guint8 BTS_PWR_CTRL_MODE;
706 guint8 PR_MODE;
707 } GPRS_SingleBlockAllocation_t;
709 typedef struct
711 guint8 TFI_ASSIGNMENT;
712 guint8 POLLING;
714 guint8 UnionType;
715 union
717 DynamicAllocation_t DynamicAllocation;
718 guint8 FixedAllocationDummy;
719 } Allocation;
721 guint8 CHANNEL_CODING_COMMAND;
722 guint8 TLLI_BLOCK_CHANNEL_CODING;
724 guint8 Exist_ALPHA;
725 guint8 ALPHA;
727 guint8 GAMMA;
729 guint8 Exist_TIMING_ADVANCE_INDEX;
730 guint8 TIMING_ADVANCE_INDEX;
732 guint8 Exist_TBF_STARTING_TIME;
733 StartingTime_t TBF_STARTING_TIME;
734 } GPRS_DynamicOrFixedAllocation_t;
736 typedef struct
738 gboolean Exist_ExtendedRA;
739 guint8 ExtendedRA;
740 } PU_IA_AdditionsR99_t;
742 typedef struct
744 guint8 UnionType;
745 union
747 GPRS_SingleBlockAllocation_t SingleBlockAllocation;
748 GPRS_DynamicOrFixedAllocation_t DynamicOrFixedAllocation;
749 } Access;
751 gboolean Exist_AdditionsR99;
752 PU_IA_AdditionsR99_t AdditionsR99;
753 } Packet_Uplink_ImmAssignment_t;
755 typedef struct
757 guint8 EGPRS_WindowSize;
758 guint8 LINK_QUALITY_MEASUREMENT_MODE;
760 gboolean Exist_BEP_PERIOD2;
761 guint8 BEP_PERIOD2;
762 } PD_IA_AdditionsR99_t;
764 typedef struct
766 guint32 TLLI;
768 guint8 Exist_TFI_to_TA_VALID;
769 guint8 TFI_ASSIGNMENT;
770 guint8 RLC_MODE;
771 guint8 Exist_ALPHA;
772 guint8 ALPHA;
773 guint8 GAMMA;
774 guint8 POLLING;
775 guint8 TA_VALID;
777 guint8 Exist_TIMING_ADVANCE_INDEX;
778 guint8 TIMING_ADVANCE_INDEX;
780 guint8 Exist_TBF_STARTING_TIME;
781 StartingTime_t TBF_STARTING_TIME;
783 guint8 Exist_P0_PR_MODE;
784 guint8 P0;
785 guint8 BTS_PWR_CTRL_MODE;
786 guint8 PR_MODE;
788 gboolean Exist_AdditionsR99;
789 PD_IA_AdditionsR99_t AdditionsR99;
790 } Packet_Downlink_ImmAssignment_t;
792 typedef struct
794 gboolean Exist_SecondPart;
796 gboolean Exist_ExtendedRA;
797 guint8 ExtendedRA;
798 } Second_Part_Packet_Assignment_t;
800 typedef struct
802 guint8 UnionType;
803 union
805 Packet_Uplink_ImmAssignment_t Packet_Uplink_ImmAssignment;
806 Packet_Downlink_ImmAssignment_t Packet_Downlink_ImmAssignment;
807 } ul_dl;
808 } IA_PacketAssignment_UL_DL_t;
810 typedef struct
812 guint8 UnionType;
813 union
815 IA_PacketAssignment_UL_DL_t UplinkDownlinkAssignment;
816 Second_Part_Packet_Assignment_t Second_Part_Packet_Assignment;
817 } u;
818 } IA_PacketAssignment_t;
820 #if 0
821 typedef struct
823 guint8 UnionType;
824 union
826 IA_FreqParamsBeforeTime_t IA_FrequencyParams;
827 IA_PacketAssignment_t IA_PacketAssignment;
828 } u;
829 } IA_GPRS_t;
831 typedef struct
833 guint8 UnionType;
834 union
836 IA_EGPRS_t IA_EGPRS_Struct;
837 IA_GPRS_t IA_GPRS_Struct;
838 } u;
839 } IA_t;
842 /* <IAR Rest Octets> ref: 04.18/10.5.2.17 */
843 typedef struct
845 guint8 Exist_ExtendedRA;
846 guint8 ExtendedRA;
847 } ExtendedRA_Info_t;
849 typedef ExtendedRA_Info_t ExtendedRA_Info_Array_t[4];
851 typedef struct
853 ExtendedRA_Info_Array_t ExtendedRA_Info;
854 } IAR_t;
855 #endif
857 /* Packet Polling Request */
858 typedef struct
860 guint8 UnionType;
861 union
863 Global_TFI_t Global_TFI;
864 guint32 TLLI;
865 guint16 TQI;
866 } u;
867 } PacketPollingID_t;
869 typedef struct
871 guint8 MESSAGE_TYPE;
872 guint8 PAGE_MODE;
873 PacketPollingID_t ID;
874 guint8 TYPE_OF_ACK;
875 } Packet_Polling_Request_t;
877 /* < SI 13 Rest Octets > */
878 #define MAX_EXTENSION_LENGTH_IN_BYTES (8) /* max value = 64 (coded on 6 bits) */
880 typedef struct
882 guint8 extension_length;
883 guint8 Extension_Info[MAX_EXTENSION_LENGTH_IN_BYTES];/* ( val (extension length)+1 ) 04.60/12.26 */
884 } Extension_Bits_t;
886 #if 0
887 typedef struct
889 guint8 DTM_SUPPORT : 1;
890 guint8 PFC_FEATURE_MODE : 1;
891 guint8 BEP_PERIOD : 4;
892 guint8 EGPRS_PACKET_CHANNEL_REQUEST : 1;
893 guint8 EGPRS_Support : 1;
895 guint8 NotUsed : 3;
896 guint8 EXT_UTBF_NODATA : 1;
897 guint8 MULTIPLE_TBF_CAPABILITY : 1;
898 guint8 NW_EXT_UTBF : 1;
899 guint8 CCN_ACTIVE : 1;
900 guint8 BSS_PAGING_COORDINATION : 1;
901 } GPRS_ExtensionInfoWithEGPRS_t;
903 typedef struct
905 guint8 EXT_UTBF_NODATA : 1;
906 guint8 MULTIPLE_TBF_CAPABILITY : 1;
907 guint8 NW_EXT_UTBF : 1;
908 guint8 CCN_ACTIVE : 1;
909 guint8 BSS_PAGING_COORDINATION : 1;
910 guint8 DTM_SUPPORT : 1;
911 guint8 PFC_FEATURE_MODE : 1;
912 guint8 EGPRS_Support : 1;
913 } GPRS_ExtensionInfoWithoutEGPRS_t;
915 typedef struct
917 guint8 NotUsed : 7;
918 guint8 EGPRS_Support : 1;
919 } EGPRS_Support_t;
921 typedef struct
923 guint8 ECSC : 1;
924 guint8 ECSR_3G : 1;
925 } NonGPRS_ExtensionInfo_t;
927 typedef struct
929 guint8 Extension_Length;
930 union
932 EGPRS_Support_t EGPRS_Support;
933 GPRS_ExtensionInfoWithEGPRS_t GPRS_ExtensionInfoWithEGPRS;
934 GPRS_ExtensionInfoWithoutEGPRS_t GPRS_ExtensionInfoWithoutEGPRS;
935 NonGPRS_ExtensionInfo_t NonGPRS_ExtensionInfo;
936 guint8 Extension_Information[MAX_EXTENSION_LENGTH_IN_BYTES];
937 } u;
938 } Optional_Extension_Information_t;
940 typedef struct
942 gboolean EGPRS_Support;
943 guint8 BEP_PERIOD;
944 gboolean EGPRS_PACKET_CHANNEL_REQUEST;
945 } EGPRS_OptionalExtensionInformation_t;
946 #endif
948 typedef struct
950 guint8 NMO;
951 guint8 T3168;
952 guint8 T3192;
953 guint8 DRX_TIMER_MAX;
954 guint8 ACCESS_BURST_TYPE;
955 guint8 CONTROL_ACK_TYPE;
956 guint8 BS_CV_MAX;
958 guint8 Exist_PAN;
959 guint8 PAN_DEC;
960 guint8 PAN_INC;
961 guint8 PAN_MAX;
963 guint8 Exist_Extension_Bits;
964 Extension_Bits_t Extension_Bits;
965 } GPRS_Cell_Options_t;
967 typedef struct
969 guint8 ALPHA;
970 guint8 T_AVG_W;
971 guint8 T_AVG_T;
972 guint8 PC_MEAS_CHAN;
973 guint8 N_AVG_I;
974 } GPRS_Power_Control_Parameters_t;
976 typedef struct
978 guint8 RAC;
979 guint8 SPGC_CCCH_SUP;
980 guint8 PRIORITY_ACCESS_THR;
981 guint8 NETWORK_CONTROL_ORDER;
982 GPRS_Cell_Options_t GPRS_Cell_Options;
983 GPRS_Power_Control_Parameters_t GPRS_Power_Control_Parameters;
984 } PBCCH_Not_present_t;
986 typedef struct
988 guint8 Pb;
989 guint8 TSC;
990 guint8 TN;
992 guint8 UnionType;
993 union
995 guint8 dummy;
996 guint16 ARFCN;
997 guint8 MAIO;
998 } u;
999 } PBCCH_Description_t;
1001 typedef struct
1003 guint8 PSI1_REPEAT_PERIOD;
1004 PBCCH_Description_t PBCCH_Description;
1005 } PBCCH_present_t;
1009 /* < Packet TBF Release message content > */
1010 typedef guint8 TBF_RELEASE_CAUSE_t;
1011 #if 0
1012 #define TBF_RELEASE_CAUSE_NORMAL (0x00)
1013 #define TBF_RELEASE_CAUSE_ABNORMAL (0x02)
1014 #endif
1016 typedef struct
1018 guint8 MESSAGE_TYPE;
1019 guint8 PAGE_MODE;
1020 Global_TFI_t Global_TFI;
1021 guint8 UPLINK_RELEASE;
1022 guint8 DOWNLINK_RELEASE;
1023 TBF_RELEASE_CAUSE_t TBF_RELEASE_CAUSE;
1024 } Packet_TBF_Release_t;
1026 /* < Packet Control Acknowledgement message content > */
1027 typedef struct
1029 guint8 Exist_CTRL_ACK_Extension;
1030 guint16 CTRL_ACK_Extension;
1031 } Packet_Control_Acknowledgement_AdditionsR6_t;
1033 typedef struct
1035 guint8 Exist_TN_RRBP;
1036 guint8 TN_RRBP;
1037 guint8 Exist_G_RNTI_Extension;
1038 guint8 G_RNTI_Extension;
1039 gboolean Exist_AdditionsR6;
1040 Packet_Control_Acknowledgement_AdditionsR6_t AdditionsR6;
1041 } Packet_Control_Acknowledgement_AdditionsR5_t;
1043 typedef struct
1044 { /* Mac header */
1045 guint8 MESSAGE_TYPE;
1046 guint8 PayloadType;
1047 guint8 spare;
1048 guint8 R;
1050 guint32 TLLI;
1051 guint8 CTRL_ACK;
1052 gboolean Exist_AdditionsR5;
1053 Packet_Control_Acknowledgement_AdditionsR5_t AdditionsR5;
1054 } Packet_Control_Acknowledgement_t;
1056 typedef Packet_Control_Acknowledgement_t Packet_Ctrl_Ack_t;
1058 #if 0
1059 typedef struct
1061 guint8 CTRL_ACK;
1062 } Packet_Control_Acknowledgement_11_bit_t, Packet_Control_Acknowledgement_8_bit_t;
1063 #endif
1065 /* < Packet Downlink Dummy Control Block message content > */
1066 typedef struct
1068 guint8 MESSAGE_TYPE;
1069 guint8 PAGE_MODE;
1071 guint8 Exist_PERSISTENCE_LEVEL;
1072 guint8 PERSISTENCE_LEVEL[4];
1073 } Packet_Downlink_Dummy_Control_Block_t;
1075 /* < Packet Uplink Dummy Control Block message content > */
1076 typedef struct
1077 { /* Mac header */
1078 guint8 MESSAGE_TYPE;
1079 guint8 PayloadType;
1080 guint8 spare;
1081 guint8 R;
1083 guint32 TLLI;
1084 } Packet_Uplink_Dummy_Control_Block_t;
1086 /* MS Radio Access capability IE >
1087 * 24.008 (10.5.5.12a)
1089 typedef guint8 A5_bits_t;/* <A5 bits> ::= < A5/1 : bit> <A5/2 : bit> <A5/3 : bit> <A5/4 : bit> <A5/5 : bit> <A5/6 : bit> <A5/7 : bit>; -- bits for circuit mode ciphering algorithms */
1091 typedef struct
1093 guint8 Exist_DTM_EGPRS_multislot_class;
1094 guint8 DTM_EGPRS_multislot_class;
1095 } DTM_EGPRS_t;
1097 typedef struct
1099 guint8 Exist_DTM_EGPRS_HighMultislotClass;
1100 guint8 DTM_EGPRS_HighMultislotClass;
1101 } DTM_EGPRS_HighMultislotClass_t;
1103 typedef struct
1105 guint8 Exist_HSCSD_multislot_class;
1106 guint8 HSCSD_multislot_class;
1108 guint8 Exist_GPRS_multislot_class;
1109 guint8 GPRS_multislot_class;
1110 guint8 GPRS_Extended_Dynamic_Allocation_Capability;
1112 guint8 Exist_SM;
1113 guint8 SMS_VALUE;
1114 guint8 SM_VALUE;
1116 /*-------- Rel 99 additions */
1117 guint8 Exist_ECSD_multislot_class;
1118 guint8 ECSD_multislot_class;
1120 guint8 Exist_EGPRS_multislot_class;
1121 guint8 EGPRS_multislot_class;
1122 guint8 EGPRS_Extended_Dynamic_Allocation_Capability;
1124 guint8 Exist_DTM_GPRS_multislot_class;
1125 guint8 DTM_GPRS_multislot_class;
1126 guint8 Single_Slot_DTM;
1127 DTM_EGPRS_t DTM_EGPRS_Params;
1128 } Multislot_capability_t;
1130 typedef struct
1132 guint8 RF_Power_Capability;
1134 guint8 Exist_A5_bits;
1135 A5_bits_t A5_bits;
1136 /*-- zero means that the same values apply for parameters as in the immediately preceeding Access capabilities field within this IE
1137 *-- The presence of the A5 bits is mandatory in the 1st Access capabilies struct within this IE.
1140 guint8 ES_IND;
1141 guint8 PS;
1142 guint8 VGCS;
1143 guint8 VBS;
1145 guint8 Exist_Multislot_capability;
1146 Multislot_capability_t Multislot_capability;
1147 /* -- zero means that the same values apply for multislot parameters as in the immediately preceeding Access capabilities field within this IE.
1148 * -- The presence of the Multislot capability struct is mandatory in the 1st Access capabilites struct within this IE.
1150 /* -------- Rel 99 additions */
1151 guint8 Exist_Eight_PSK_Power_Capability;
1152 guint8 Eight_PSK_Power_Capability;
1154 guint8 COMPACT_Interference_Measurement_Capability;
1155 guint8 Revision_Level_Indicator;
1156 guint8 UMTS_FDD_Radio_Access_Technology_Capability;
1157 guint8 UMTS_384_TDD_Radio_Access_Technology_Capability;
1158 guint8 CDMA2000_Radio_Access_Technology_Capability;
1160 /* -------- R4 additions */
1161 guint8 UMTS_128_TDD_Radio_Access_Technology_Capability;
1162 guint8 GERAN_Feature_Package_1;
1164 guint8 Exist_Extended_DTM_multislot_class;
1165 guint8 Extended_DTM_GPRS_multislot_class;
1166 guint8 Extended_DTM_EGPRS_multislot_class;
1168 guint8 Modulation_based_multislot_class_support;
1170 /* -------- R5 additions */
1171 guint8 Exist_HighMultislotCapability;
1172 guint8 HighMultislotCapability;
1174 guint8 Exist_GERAN_lu_ModeCapability;
1175 guint8 GERAN_lu_ModeCapability;
1177 guint8 GMSK_MultislotPowerProfile;
1178 guint8 EightPSK_MultislotProfile;
1180 /* -------- R6 additions */
1181 guint8 MultipleTBF_Capability;
1182 guint8 DownlinkAdvancedReceiverPerformance;
1183 guint8 ExtendedRLC_MAC_ControlMessageSegmentionsCapability;
1184 guint8 DTM_EnhancementsCapability;
1186 guint8 Exist_DTM_GPRS_HighMultislotClass;
1187 guint8 DTM_GPRS_HighMultislotClass;
1188 DTM_EGPRS_HighMultislotClass_t DTM_EGPRS_HighMultislotClass;
1189 guint8 PS_HandoverCapability;
1190 } Content_t;
1192 #define ABSOLUTE_MAX_BANDS 2 /* New fields for R4 extend the length of the capabilities message so we can only send 2 */
1194 #define MAX_ACCESS_TECHNOLOGIES_COUNT 16 /* No more than 16 instances */
1196 typedef enum
1197 {/* See TS 24.008 table 10.5.146, GSM R and GSM 450/480 excluded */
1198 AccTech_GSMP = 0x0,
1199 AccTech_GSME = 0x1,
1200 AccTech_GSM1800 = 0x3,
1201 AccTech_GSM1900 = 0x4,
1202 AccTech_GSM850 = 0x7,
1203 AccTech_GSMOther = 0xf
1204 } AccessTechnology_t;
1206 #if 0
1207 typedef struct
1209 guint8 CountAccessTechnologies;
1210 AccessTechnology_t AccessTechnologies[MAX_ACCESS_TECHNOLOGIES_COUNT];
1211 } AccessTechnologiesRequest_t;
1212 #endif
1214 typedef struct
1216 AccessTechnology_t Access_Technology_Type;
1217 guint8 GMSK_Power_class;
1218 guint8 Eight_PSK_Power_class;
1219 } Additional_access_technologies_struct_t;
1221 typedef struct
1223 guint8 Count_additional_access_technologies;
1224 /* The value 0xf cannot be set for the first ATT, therefore we can only have
1225 ABSOLUTE_MAX_BANDS-1 additional access technologies. */
1226 Additional_access_technologies_struct_t Additional_access_technologies[ABSOLUTE_MAX_BANDS-1];
1227 } Additional_access_technologies_t;
1229 typedef struct
1231 guint8 IndexOfAccTech; /* Position in AccessTechnology_t */
1232 union
1234 /* Long Form */
1235 Content_t Content;
1236 /* Short Form */
1237 Additional_access_technologies_t Additional_access_technologies;
1238 } u;
1239 } MS_RA_capability_value_t;
1241 typedef struct
1243 guint8 Count_MS_RA_capability_value; /* Recursive */
1244 MS_RA_capability_value_t MS_RA_capability_value[ABSOLUTE_MAX_BANDS];
1245 } MS_Radio_Access_capability_t;
1248 typedef struct
1250 guint8 ExistEDGE_RF_PwrCap1;
1251 guint8 EDGE_RF_PwrCap1;
1252 guint8 ExistEDGE_RF_PwrCap2;
1253 guint8 EDGE_RF_PwrCap2;
1254 } EDGE_RF_Pwr_t;
1256 typedef struct
1258 guint8 A5_Bits;
1259 guint8 Arc2_Spare;
1260 guint8 Arc1;
1261 } ARC_t;
1263 typedef struct
1265 guint8 Multiband;
1266 union
1268 guint8 A5_Bits;
1269 ARC_t ARC;
1270 } u;
1271 } Multiband_t;
1273 typedef struct /* MS classmark 3 R99 */
1275 guint8 Spare1;
1276 Multiband_t Multiband;
1278 guint8 Exist_R_Support;
1279 guint8 R_GSM_Arc;
1281 guint8 Exist_MultiSlotCapability;
1282 guint8 MultiSlotClass;
1284 guint8 UCS2;
1285 guint8 ExtendedMeasurementCapability;
1287 guint8 Exist_MS_MeasurementCapability;
1288 guint8 SMS_VALUE;
1289 guint8 SM_VALUE;
1291 guint8 Exist_MS_PositioningMethodCapability;
1292 guint8 MS_PositioningMethod;
1294 guint8 Exist_EDGE_MultiSlotCapability;
1295 guint8 EDGE_MultiSlotClass;
1297 guint8 Exist_EDGE_Struct;
1298 guint8 ModulationCapability;
1299 EDGE_RF_Pwr_t EDGE_RF_PwrCaps;
1301 guint8 Exist_GSM400_Info;
1302 guint8 GSM400_Bands;
1303 guint8 GSM400_Arc;
1305 guint8 Exist_GSM850_Arc;
1306 guint8 GSM850_Arc;
1308 guint8 Exist_PCS1900_Arc;
1309 guint8 PCS1900_Arc;
1311 guint8 UMTS_FDD_Radio_Access_Technology_Capability;
1312 guint8 UMTS_384_TDD_Radio_Access_Technology_Capability;
1313 guint8 CDMA2000_Radio_Access_Technology_Capability;
1315 guint8 Exist_DTM_GPRS_multislot_class;
1316 guint8 DTM_GPRS_multislot_class;
1317 guint8 Single_Slot_DTM;
1318 DTM_EGPRS_t DTM_EGPRS_Params;
1320 /* -------- R4 additions */
1321 guint8 Exist_SingleBandSupport;
1322 guint8 GSM_Band;
1324 guint8 Exist_GSM_700_Associated_Radio_Capability;
1325 guint8 GSM_700_Associated_Radio_Capability;
1327 guint8 UMTS_128_TDD_Radio_Access_Technology_Capability;
1328 guint8 GERAN_Feature_Package_1;
1330 guint8 Exist_Extended_DTM_multislot_class;
1331 guint8 Extended_DTM_GPRS_multislot_class;
1332 guint8 Extended_DTM_EGPRS_multislot_class;
1334 /* -------- R5 additions */
1335 guint8 Exist_HighMultislotCapability;
1336 guint8 HighMultislotCapability;
1338 guint8 Exist_GERAN_lu_ModeCapability;
1339 guint8 GERAN_lu_ModeCapability;
1341 guint8 GERAN_FeaturePackage_2;
1343 guint8 GMSK_MultislotPowerProfile;
1344 guint8 EightPSK_MultislotProfile;
1346 /* -------- R6 additions */
1347 guint8 Exist_TGSM_400_Bands;
1348 guint8 TGSM_400_BandsSupported;
1349 guint8 TGSM_400_AssociatedRadioCapability;
1351 guint8 Exist_TGSM_900_AssociatedRadioCapability;
1352 guint8 TGSM_900_AssociatedRadioCapability;
1354 guint8 DownlinkAdvancedReceiverPerformance;
1355 guint8 DTM_EnhancementsCapability;
1357 guint8 Exist_DTM_GPRS_HighMultislotClass;
1358 guint8 DTM_GPRS_HighMultislotClass;
1359 guint8 OffsetRequired;
1360 DTM_EGPRS_HighMultislotClass_t DTM_EGPRS_HighMultislotClass;
1361 guint8 RepeatedSACCH_Capability;
1363 guint8 Spare2;
1364 } MS_Class3_Unpacked_t;
1367 /* < Packet Resource Request message content > */
1368 typedef struct
1370 gboolean Exist;
1371 guint8 UnionType;
1372 union
1374 guint8 MEAN_BEP_GMSK;
1375 guint8 MEAN_BEP_8PSK;
1376 } u;
1377 } BEP_MeasurementReport_t;
1379 typedef struct
1381 gboolean Exist;
1382 guint8 I_LEVEL;
1383 } InterferenceMeasurementReport_t;
1385 typedef struct
1387 gboolean Exist_BEP_MEASUREMENTS;
1388 BEP_MeasurementReport_t BEP_MEASUREMENTS[8];
1390 gboolean Exist_INTERFERENCE_MEASUREMENTS;
1391 InterferenceMeasurementReport_t INTERFERENCE_MEASUREMENTS[8];
1392 } EGPRS_TimeslotLinkQualityMeasurements_t;
1394 typedef struct
1396 gboolean Exist_MEAN_CV_BEP_GMSK;
1397 guint8 MEAN_BEP_GMSK;
1398 guint8 CV_BEP_GMSK;
1400 gboolean Exist_MEAN_CV_BEP_8PSK;
1401 guint8 MEAN_BEP_8PSK;
1402 guint8 CV_BEP_8PSK;
1403 } EGPRS_BEP_LinkQualityMeasurements_t;
1405 typedef struct
1407 gboolean Exist_EGPRS_BEP_LinkQualityMeasurements;
1408 EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1410 gboolean Exist_EGPRS_TimeslotLinkQualityMeasurements;
1411 EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1413 gboolean Exist_PFI;
1414 guint8 PFI;
1416 guint8 MS_RAC_AdditionalInformationAvailable;
1417 guint8 RetransmissionOfPRR;
1418 } PRR_AdditionsR99_t;
1420 typedef struct
1422 guint8 UnionType;
1423 union
1425 Global_TFI_t Global_TFI;
1426 guint32 TLLI;
1427 } u;
1428 } PacketResourceRequestID_t;
1430 typedef struct
1432 guint8 MESSAGE_TYPE;
1433 guint8 PayloadType;
1434 guint8 spare;
1435 guint8 R;
1437 guint8 Exist_ACCESS_TYPE;
1438 guint8 ACCESS_TYPE;
1440 PacketResourceRequestID_t ID;
1442 guint8 Exist_MS_Radio_Access_capability;
1443 MS_Radio_Access_capability_t MS_Radio_Access_capability;
1445 Channel_Request_Description_t Channel_Request_Description;
1447 guint8 Exist_CHANGE_MARK;
1448 guint8 CHANGE_MARK;
1450 guint8 C_VALUE;
1452 guint8 Exist_SIGN_VAR;
1453 guint8 SIGN_VAR;
1455 InterferenceMeasurementReport_t Slot[8];
1457 guint8 Exist_AdditionsR99;
1458 PRR_AdditionsR99_t AdditionsR99;
1459 } Packet_Resource_Request_t;
1461 /* < Packet Mobile TBF Status message content >*/
1462 typedef struct
1464 guint8 MESSAGE_TYPE;
1465 guint8 PayloadType;
1466 guint8 spare;
1467 guint8 R;
1469 Global_TFI_t Global_TFI;
1470 guint8 TBF_CAUSE;
1472 guint8 Exist_STATUS_MESSAGE_TYPE;
1473 guint8 STATUS_MESSAGE_TYPE;
1474 } Packet_Mobile_TBF_Status_t;
1476 /* < Packet PSI Status message content >*/
1477 typedef struct
1479 guint8 PSI_MESSAGE_TYPE;
1480 guint8 PSIX_CHANGE_MARK;
1481 guint8 Exist_PSIX_COUNT_and_Instance_Bitmap;
1482 } PSI_Message_t;
1484 typedef struct
1486 guint8 Count_PSI_Message;
1487 PSI_Message_t PSI_Message[10];
1489 guint8 ADDITIONAL_MSG_TYPE;
1490 } PSI_Message_List_t;
1492 typedef struct
1494 guint8 ADDITIONAL_MSG_TYPE;
1495 } Unknown_PSI_Message_List_t;
1497 typedef struct
1499 guint8 MESSAGE_TYPE;
1500 guint8 PayloadType;
1501 guint8 spare;
1502 guint8 R;
1504 Global_TFI_t Global_TFI;
1505 guint8 PBCCH_CHANGE_MARK;
1507 PSI_Message_List_t PSI_Message_List;
1508 Unknown_PSI_Message_List_t Unknown_PSI_Message_List;
1509 } Packet_PSI_Status_t;
1511 /* < Packet SI Status message content > */
1512 typedef struct
1514 guint8 SI_MESSAGE_TYPE;
1515 guint8 MESS_REC;
1516 guint8 SIX_CHANGE_MARK;
1518 guint8 SIX_COUNT;
1519 guint8 Instance_bitmap[2];
1520 } SI_Message_t;
1522 typedef struct
1524 guint8 Count_SI_Message;
1525 SI_Message_t SI_Message[10];
1527 guint8 ADDITIONAL_MSG_TYPE;
1528 } SI_Message_List_t;
1530 typedef struct
1532 guint8 ADDITIONAL_MSG_TYPE;
1533 } Unknown_SI_Message_List_t;
1535 typedef struct
1537 guint8 MESSAGE_TYPE;
1538 guint8 PayloadType;
1539 guint8 spare;
1540 guint8 R;
1542 Global_TFI_t Global_TFI;
1543 guint8 BCCH_CHANGE_MARK;
1545 SI_Message_List_t SI_Message_List;
1546 Unknown_SI_Message_List_t Unknown_SI_Message_List;
1547 } Packet_SI_Status_t;
1549 typedef struct
1551 guint16 FDD_ARFCN;
1552 guint8 DIVERSITY;
1553 guint8 Exist_Bandwith_FDD;
1554 guint8 BANDWITH_FDD;
1555 guint16 SCRAMBLING_CODE;
1556 } FDD_Target_Cell_t;
1558 typedef struct
1560 guint16 TDD_ARFCN;
1561 guint8 DIVERSITY_TDD;
1562 guint8 Exist_Bandwith_TDD;
1563 guint8 BANDWITH_TDD;
1564 guint16 CELL_PARAMETER;
1565 guint8 Sync_Case_TSTD;
1566 } TDD_Target_Cell_t;
1568 typedef struct
1570 guint16 EARFCN;
1571 guint8 Exist_Measurement_Bandwidth;
1572 guint8 Measurement_Bandwidth;
1573 guint16 Physical_Layer_Cell_Identity;
1574 } EUTRAN_Target_Cell_t;
1576 typedef struct
1578 guint32 UTRAN_CI;
1579 guint8 Exist_PLMN_ID;
1580 PLMN_t PLMN_ID;
1581 } UTRAN_CSG_Target_Cell_t;
1583 typedef struct
1585 guint32 EUTRAN_CI;
1586 guint16 Tracking_Area_Code;
1587 guint8 Exist_PLMN_ID;
1588 PLMN_t PLMN_ID;
1589 } EUTRAN_CSG_Target_Cell_t;
1591 typedef struct
1593 guint8 Exist_UTRAN_CSG_Target_Cell;
1594 UTRAN_CSG_Target_Cell_t UTRAN_CSG_Target_Cell;
1595 guint8 Exist_EUTRAN_CSG_Target_Cell;
1596 EUTRAN_CSG_Target_Cell_t EUTRAN_CSG_Target_Cell;
1597 } PCCF_AdditionsR9_t;
1599 typedef struct
1601 guint8 Exist_EUTRAN_Target_Cell;
1602 EUTRAN_Target_Cell_t EUTRAN_Target_Cell;
1603 guint8 Exist_AdditionsR9;
1604 PCCF_AdditionsR9_t AdditionsR9;
1605 } PCCF_AdditionsR8_t;
1607 typedef struct
1609 guint8 Exist_G_RNTI_extention;
1610 guint8 G_RNTI_extention;
1611 guint8 Exist_AdditionsR8;
1612 PCCF_AdditionsR8_t AdditionsR8;
1613 } PCCF_AdditionsR5_t;
1615 typedef struct
1617 guint8 Exist_FDD_Description;
1618 FDD_Target_Cell_t FDD_Target_Cell;
1619 guint8 Exist_TDD_Description;
1620 TDD_Target_Cell_t TDD_Target_Cell;
1621 guint8 Exist_AdditionsR5;
1622 PCCF_AdditionsR5_t AdditionsR5;
1623 } PCCF_AdditionsR99_t;
1625 /* < Packet Cell Change Failure message content > */
1626 typedef struct
1628 guint8 MESSAGE_TYPE;
1629 guint8 PayloadType;
1630 guint8 spare;
1631 guint8 R;
1633 guint32 TLLI;
1634 guint16 ARFCN;
1635 guint8 BSIC;
1636 guint8 CAUSE;
1637 gboolean Exist_AdditionsR99;
1638 PCCF_AdditionsR99_t AdditionsR99;
1639 } Packet_Cell_Change_Failure_t;
1641 /* < Packet Downlink Ack/Nack message content > */
1642 typedef struct
1644 gboolean Exist_PFI;
1645 guint8 PFI;
1646 } PD_AckNack_AdditionsR99_t;
1648 typedef struct
1650 guint8 MESSAGE_TYPE;
1651 guint8 PayloadType;
1652 guint8 spare;
1653 guint8 R;
1655 guint8 DOWNLINK_TFI;
1656 Ack_Nack_Description_t Ack_Nack_Description;
1658 guint8 Exist_Channel_Request_Description;
1659 Channel_Request_Description_t Channel_Request_Description;
1661 Channel_Quality_Report_t Channel_Quality_Report;
1663 gboolean Exist_AdditionsR99;
1664 PD_AckNack_AdditionsR99_t AdditionsR99;
1665 } Packet_Downlink_Ack_Nack_t;
1667 /* < EGPRS Packet Downlink Ack/Nack message content > */
1668 typedef struct
1670 EGPRS_BEP_LinkQualityMeasurements_t EGPRS_BEP_LinkQualityMeasurements;
1671 guint8 C_VALUE;
1672 EGPRS_TimeslotLinkQualityMeasurements_t EGPRS_TimeslotLinkQualityMeasurements;
1673 } EGPRS_ChannelQualityReport_t;
1675 typedef struct
1677 guint8 MESSAGE_TYPE;
1678 guint8 PayloadType;
1679 guint8 spare;
1680 guint8 R;
1682 guint8 DOWNLINK_TFI;
1683 guint8 MS_OUT_OF_MEMORY;
1685 gboolean Exist_EGPRS_ChannelQualityReport;
1686 EGPRS_ChannelQualityReport_t EGPRS_ChannelQualityReport;
1688 gboolean Exist_ChannelRequestDescription;
1689 Channel_Request_Description_t ChannelRequestDescription;
1691 gboolean Exist_PFI;
1692 guint8 PFI;
1694 gboolean Exist_ExtensionBits;
1695 Extension_Bits_t ExtensionBits;
1697 EGPRS_AckNack_t EGPRS_AckNack;
1698 } EGPRS_PD_AckNack_t;
1700 /* < Packet Uplink Ack/Nack message content 04.60 sec.11.2.28 > */
1702 typedef struct
1704 guint8 Exist_CONTENTION_RESOLUTION_TLLI;
1705 guint32 CONTENTION_RESOLUTION_TLLI;
1707 guint8 Exist_Packet_Timing_Advance;
1708 Packet_Timing_Advance_t Packet_Timing_Advance;
1710 guint8 Exist_Extension_Bits;
1711 Extension_Bits_t Extension_Bits;
1713 guint8 Exist_Power_Control_Parameters;
1714 Power_Control_Parameters_t Power_Control_Parameters;
1715 } Common_Uplink_Ack_Nack_Data_t;
1717 typedef struct
1719 gboolean Exist_PacketExtendedTimingAdvance;
1720 guint8 PacketExtendedTimingAdvance;
1721 guint8 TBF_EST;
1722 } PU_AckNack_GPRS_AdditionsR99_t;
1724 typedef struct
1726 guint8 CHANNEL_CODING_COMMAND;
1727 Ack_Nack_Description_t Ack_Nack_Description;
1729 guint8 UnionType;
1730 union
1732 guint8 FixedAllocationDummy;
1733 guint8 Error;
1734 } u;
1736 gboolean Exist_AdditionsR99;
1737 PU_AckNack_GPRS_AdditionsR99_t AdditionsR99;
1740 Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1741 } PU_AckNack_GPRS_t;
1743 typedef struct
1745 guint8 EGPRS_ChannelCodingCommand;
1746 guint8 RESEGMENT;
1747 guint8 PRE_EMPTIVE_TRANSMISSION;
1748 guint8 PRR_RETRANSMISSION_REQUEST;
1749 guint8 ARAC_RETRANSMISSION_REQUEST;
1751 guint8 TBF_EST;
1753 gboolean Exist_Packet_Extended_Timing_Advance;
1754 guint8 Packet_Extended_Timing_Advance;
1756 EGPRS_AckNack_t EGPRS_AckNack;
1759 Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data;
1760 } PU_AckNack_EGPRS_00_t;
1762 typedef struct
1764 guint8 UnionType;
1765 union
1767 PU_AckNack_EGPRS_00_t PU_AckNack_EGPRS_00;
1768 guint8 extension_01;
1769 guint8 extension_10;
1770 guint8 extension_11;
1771 } u;
1772 } PU_AckNack_EGPRS_t;
1774 #if 0
1775 enum PUAN_Type
1777 PUAN_GPRS,
1778 PUAN_EGPRS
1780 #endif
1782 typedef struct
1784 guint8 MESSAGE_TYPE;
1785 guint8 PAGE_MODE;
1786 guint8 UPLINK_TFI;
1788 guint8 UnionType;
1789 union
1791 PU_AckNack_GPRS_t PU_AckNack_GPRS_Struct;
1792 PU_AckNack_EGPRS_t PU_AckNack_EGPRS_Struct;
1793 } u;
1794 } Packet_Uplink_Ack_Nack_t;
1796 /* < Packet Uplink Assignment message content > */
1797 typedef struct
1799 guint8 CHANGE_MARK_1;
1800 guint8 Exist_CHANGE_MARK_2;
1801 guint8 CHANGE_MARK_2;
1802 } CHANGE_MARK_t;
1804 typedef struct
1806 guint8 MAIO;
1807 guint8 MA_NUMBER;
1809 guint8 Exist_CHANGE_MARK;
1810 CHANGE_MARK_t CHANGE_MARK;
1811 } Indirect_encoding_t;
1813 typedef struct
1815 guint8 MAIO;
1816 GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
1817 } Direct_encoding_1_t;
1819 typedef struct
1821 guint8 MAIO;
1822 guint8 HSN;
1823 guint8 Length_of_MA_Frequency_List;
1824 guint8 MA_Frequency_List[15+3];
1825 } Direct_encoding_2_t;
1827 typedef struct
1829 guint8 TSC;
1830 guint8 UnionType;
1831 union
1833 guint16 ARFCN;
1834 Indirect_encoding_t Indirect_encoding;
1835 Direct_encoding_1_t Direct_encoding_1;
1836 Direct_encoding_2_t Direct_encoding_2;
1837 } u;
1838 } Frequency_Parameters_t;
1840 typedef struct
1842 guint8 Exist;
1843 guint8 USF_TN;
1844 } Timeslot_Allocation_t;
1846 typedef struct
1848 guint8 ALPHA;
1850 struct
1852 guint8 Exist;
1853 guint8 USF_TN;
1854 guint8 GAMMA_TN;
1855 } Slot[8];
1856 } Timeslot_Allocation_Power_Ctrl_Param_t;
1858 typedef struct
1860 guint8 Extended_Dynamic_Allocation;
1862 guint8 Exist_P0;
1863 guint8 P0;
1864 guint8 PR_MODE;
1866 guint8 USF_GRANULARITY;
1868 guint8 Exist_UPLINK_TFI_ASSIGNMENT;
1869 guint8 UPLINK_TFI_ASSIGNMENT;
1871 guint8 Exist_RLC_DATA_BLOCKS_GRANTED;
1872 guint8 RLC_DATA_BLOCKS_GRANTED;
1874 guint8 Exist_TBF_Starting_Time;
1875 Starting_Frame_Number_t TBF_Starting_Time;
1877 guint8 UnionType;
1878 union
1880 Timeslot_Allocation_t Timeslot_Allocation[8];
1881 Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
1882 } u;
1883 } Dynamic_Allocation_t;
1885 typedef struct
1887 guint8 Extended_Dynamic_Allocation;
1889 guint8 Exist_P0;
1890 guint8 P0;
1891 guint8 PR_MODE;
1893 guint8 USF_GRANULARITY;
1895 guint8 Exist_UPLINK_TFI_ASSIGNMENT;
1896 guint8 UPLINK_TFI_ASSIGNMENT;
1898 guint8 Exist_RLC_DATA_BLOCKS_GRANTED;
1899 guint8 RLC_DATA_BLOCKS_GRANTED;
1901 guint8 UnionType;
1902 union
1904 Timeslot_Allocation_t Timeslot_Allocation[8];
1905 Timeslot_Allocation_Power_Ctrl_Param_t Timeslot_Allocation_Power_Ctrl_Param;
1906 } u;
1907 } DTM_Dynamic_Allocation_t;
1909 typedef struct
1911 guint8 TIMESLOT_NUMBER;
1913 guint8 Exist_ALPHA_and_GAMMA_TN;
1914 guint8 ALPHA;
1915 guint8 GAMMA_TN;
1917 guint8 Exist_P0;
1918 guint8 P0;
1919 guint8 BTS_PWR_CTRL_MODE;
1920 guint8 PR_MODE;
1922 Starting_Frame_Number_t TBF_Starting_Time;
1923 } Single_Block_Allocation_t;
1925 typedef struct
1927 guint8 TIMESLOT_NUMBER;
1929 guint8 Exist_ALPHA_and_GAMMA_TN;
1930 guint8 ALPHA;
1931 guint8 GAMMA_TN;
1933 guint8 Exist_P0;
1934 guint8 P0;
1935 guint8 BTS_PWR_CTRL_MODE;
1936 guint8 PR_MODE;
1938 } DTM_Single_Block_Allocation_t;
1940 typedef struct
1942 guint8 UnionType;
1943 union
1945 Global_TFI_t Global_TFI;
1946 guint32 TLLI;
1947 guint16 TQI;
1948 Packet_Request_Reference_t Packet_Request_Reference;
1949 } u;
1950 } PacketUplinkID_t;
1952 typedef struct
1954 gboolean Exist_Packet_Extended_Timing_Advance;
1955 guint8 Packet_Extended_Timing_Advance;
1956 } PUA_GPRS_AdditionsR99_t;
1958 typedef struct
1960 guint8 CHANNEL_CODING_COMMAND;
1961 guint8 TLLI_BLOCK_CHANNEL_CODING;
1962 Packet_Timing_Advance_t Packet_Timing_Advance;
1964 guint8 Exist_Frequency_Parameters;
1965 Frequency_Parameters_t Frequency_Parameters;
1967 guint8 UnionType;
1968 union
1970 guint8 extension;
1971 Dynamic_Allocation_t Dynamic_Allocation;
1972 Single_Block_Allocation_t Single_Block_Allocation;
1973 guint8 FixedAllocationDummy;
1974 } u;
1976 gboolean Exist_AdditionsR99;
1977 PUA_GPRS_AdditionsR99_t AdditionsR99;
1978 } PUA_GPRS_t;
1980 typedef struct
1982 guint8 BitmapLength;
1983 guint8 ReducedMA_Bitmap[127 / 8 + 1];
1985 gboolean Exist_MAIO_2;
1986 guint8 MAIO_2;
1987 } COMPACT_ReducedMA_t;
1989 typedef struct
1991 guint8 TIMESLOT_NUMBER;
1993 gboolean Exist_ALPHA_GAMMA_TN;
1994 guint8 ALPHA;
1995 guint8 GAMMA_TN;
1997 gboolean Exist_P0_BTS_PWR_CTRL_PR_MODE;
1998 guint8 P0;
1999 guint8 BTS_PWR_CTRL_MODE;
2000 guint8 PR_MODE;
2002 Starting_Frame_Number_t TBF_Starting_Time;
2003 guint8 NUMBER_OF_RADIO_BLOCKS_ALLOCATED;
2004 } MultiBlock_Allocation_t;
2006 typedef struct
2008 gboolean Exist_CONTENTION_RESOLUTION_TLLI;
2009 guint32 CONTENTION_RESOLUTION_TLLI;
2011 gboolean Exist_COMPACT_ReducedMA;
2012 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2014 guint8 EGPRS_CHANNEL_CODING_COMMAND;
2015 guint8 RESEGMENT;
2016 guint8 EGPRS_WindowSize;
2018 guint8 NrOfAccessTechnologies; /* will hold the number of list elements */
2019 guint8 AccessTechnologyType[MAX_ACCESS_TECHOLOGY_TYPES]; /* for max size of array see 24.008/Table 10.5.146 */
2021 guint8 ARAC_RETRANSMISSION_REQUEST;
2022 guint8 TLLI_BLOCK_CHANNEL_CODING;
2024 gboolean Exist_BEP_PERIOD2;
2025 guint8 BEP_PERIOD2;
2027 Packet_Timing_Advance_t PacketTimingAdvance;
2029 gboolean Exist_Packet_Extended_Timing_Advance;
2030 guint8 Packet_Extended_Timing_Advance;
2032 gboolean Exist_Frequency_Parameters;
2033 Frequency_Parameters_t Frequency_Parameters;
2035 guint8 UnionType;
2036 union
2038 guint8 extension;
2039 Dynamic_Allocation_t Dynamic_Allocation;
2040 MultiBlock_Allocation_t MultiBlock_Allocation;
2041 guint8 FixedAllocationDummy;/* Fixed Allocation is not used */
2042 } u;
2043 } PUA_EGPRS_00_t;
2045 typedef struct
2047 guint8 UnionType;
2048 union
2050 PUA_EGPRS_00_t PUA_EGPRS_00;
2051 guint8 PUA_EGPRS_01;
2052 guint8 PUA_EGPRS_10;
2053 guint8 PUA_EGPRS_11;
2054 } u;
2055 } PUA_EGPRS_t;
2057 #if 0
2058 enum PUA_Type
2060 PUA_GPRS,
2061 PUA_EGPRS
2063 #endif
2065 typedef struct
2067 guint8 MESSAGE_TYPE;
2068 guint8 PAGE_MODE;
2070 guint8 Exist_PERSISTENCE_LEVEL;
2071 guint8 PERSISTENCE_LEVEL[4];
2073 PacketUplinkID_t ID;
2075 guint8 UnionType;
2076 union
2078 PUA_GPRS_t PUA_GPRS_Struct;
2079 PUA_EGPRS_t PUA_EGPRS_Struct;
2080 } u;
2081 } Packet_Uplink_Assignment_t;
2084 /* < DTM Packet Uplink Assignment message content > */
2085 typedef struct
2087 guint8 CHANNEL_CODING_COMMAND;
2088 guint8 TLLI_BLOCK_CHANNEL_CODING;
2089 Packet_Timing_Advance_t Packet_Timing_Advance;
2091 guint8 UnionType;
2092 union
2094 guint8 extension;
2095 DTM_Dynamic_Allocation_t DTM_Dynamic_Allocation;
2096 DTM_Single_Block_Allocation_t DTM_Single_Block_Allocation;
2097 } u;
2098 gboolean Exist_EGPRS_Parameters;
2099 guint8 EGPRS_CHANNEL_CODING_COMMAND;
2100 guint8 RESEGMENT;
2101 guint8 EGPRS_WindowSize;
2102 gboolean Exist_Packet_Extended_Timing_Advance;
2103 guint8 Packet_Extended_Timing_Advance;
2104 } DTM_Packet_Uplink_Assignment_t;
2106 typedef struct
2108 DTM_Packet_Uplink_Assignment_t DTM_Packet_Uplink_Assignment;
2109 } DTM_UL_t;
2111 /* < DTM Packet Channel Request message content > */
2112 typedef struct
2114 guint8 DTM_Pkt_Est_Cause;
2115 Channel_Request_Description_t Channel_Request_Description;
2116 gboolean Exist_PFI;
2117 guint8 PFI;
2118 } DTM_Channel_Request_Description_t;
2120 /* < Packet Downlink Assignment message content > */
2121 typedef struct
2123 Starting_Frame_Number_t Measurement_Starting_Time;
2124 guint8 MEASUREMENT_INTERVAL;
2125 guint8 MEASUREMENT_BITMAP;
2126 } Measurement_Mapping_struct_t;
2128 typedef struct
2130 guint8 UnionType;
2131 union
2133 Global_TFI_t Global_TFI;
2134 guint32 TLLI;
2135 } u;
2136 } PacketDownlinkID_t;
2138 typedef struct
2140 gboolean Exist_EGPRS_Params; /* if Exist_EGPRS_Params == FALSE then none of the following 4 vars exist */
2141 guint8 EGPRS_WindowSize;
2142 guint8 LINK_QUALITY_MEASUREMENT_MODE;
2143 gboolean Exist_BEP_PERIOD2;
2144 guint8 BEP_PERIOD2;
2146 gboolean Exist_Packet_Extended_Timing_Advance;
2147 guint8 Packet_Extended_Timing_Advance;
2149 gboolean Exist_COMPACT_ReducedMA;
2150 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2151 } PDA_AdditionsR99_t;
2153 typedef struct
2155 guint8 MESSAGE_TYPE;
2156 guint8 PAGE_MODE;
2158 gboolean Exist_PERSISTENCE_LEVEL;
2159 guint8 PERSISTENCE_LEVEL[4];
2161 PacketDownlinkID_t ID;
2163 guint8 MAC_MODE;
2164 guint8 RLC_MODE;
2165 guint8 CONTROL_ACK;
2166 guint8 TIMESLOT_ALLOCATION;
2167 Packet_Timing_Advance_t Packet_Timing_Advance;
2169 gboolean Exist_P0_and_BTS_PWR_CTRL_MODE;
2170 guint8 P0;
2171 guint8 BTS_PWR_CTRL_MODE;
2172 guint8 PR_MODE;
2174 gboolean Exist_Frequency_Parameters;
2175 Frequency_Parameters_t Frequency_Parameters;
2177 gboolean Exist_DOWNLINK_TFI_ASSIGNMENT;
2178 guint8 DOWNLINK_TFI_ASSIGNMENT;
2180 gboolean Exist_Power_Control_Parameters;
2181 Power_Control_Parameters_t Power_Control_Parameters;
2183 gboolean Exist_TBF_Starting_Time;
2184 Starting_Frame_Number_t TBF_Starting_Time;
2186 guint8 Exist_Measurement_Mapping;
2187 Measurement_Mapping_struct_t Measurement_Mapping;
2189 gboolean Exist_AdditionsR99;
2190 PDA_AdditionsR99_t AdditionsR99;
2191 } Packet_Downlink_Assignment_t;
2193 /* < DTM Packet Downlink Assignment message content > */
2194 typedef struct
2196 guint8 MAC_MODE;
2197 guint8 RLC_MODE;
2198 guint8 TIMESLOT_ALLOCATION;
2199 Packet_Timing_Advance_t Packet_Timing_Advance;
2201 guint8 Exist_P0_and_BTS_PWR_CTRL_MODE;
2202 guint8 P0;
2203 guint8 BTS_PWR_CTRL_MODE;
2204 guint8 PR_MODE;
2206 guint8 Exist_Power_Control_Parameters;
2207 Power_Control_Parameters_t Power_Control_Parameters;
2209 guint8 Exist_DOWNLINK_TFI_ASSIGNMENT;
2210 guint8 DOWNLINK_TFI_ASSIGNMENT;
2212 guint8 Exist_Measurement_Mapping;
2213 Measurement_Mapping_struct_t Measurement_Mapping;
2214 gboolean EGPRS_Mode;
2215 guint8 EGPRS_WindowSize;
2216 guint8 LINK_QUALITY_MEASUREMENT_MODE;
2217 gboolean Exist_Packet_Extended_Timing_Advance;
2218 guint8 Packet_Extended_Timing_Advance;
2219 } DTM_Packet_Downlink_Assignment_t;
2221 typedef struct
2223 DTM_Packet_Downlink_Assignment_t DTM_Packet_Downlink_Assignment;
2224 } DTM_DL_t;
2226 typedef struct
2228 GPRS_Cell_Options_t GPRS_Cell_Options;
2229 GPRS_Power_Control_Parameters_t GPRS_Power_Control_Parameters;
2230 } DTM_GPRS_Broadcast_Information_t;
2232 typedef struct
2234 DTM_GPRS_Broadcast_Information_t DTM_GPRS_Broadcast_Information;
2235 } DTM_GPRS_B_t;
2237 /* < Packet Paging Request message content > */
2238 typedef struct
2240 guint8 UnionType;
2241 union
2243 TMSI_t PTMSI;
2244 struct MobileId Mobile_Identity;
2245 } u;
2246 } Page_request_for_TBF_establishment_t;
2248 typedef struct
2250 guint8 UnionType;
2251 union
2253 TMSI_t TMSI;
2254 struct MobileId Mobile_Identity;
2255 } u;
2257 guint8 CHANNEL_NEEDED;
2259 guint8 Exist_eMLPP_PRIORITY;
2260 guint8 eMLPP_PRIORITY;
2261 } Page_request_for_RR_conn_t;
2263 typedef struct
2265 guint8 UnionType;
2266 union
2268 Page_request_for_TBF_establishment_t Page_req_TBF;
2269 Page_request_for_RR_conn_t Page_req_RR;
2270 } u;
2271 } Repeated_Page_info_t;
2273 typedef struct
2275 guint8 MESSAGE_TYPE;
2276 guint8 PAGE_MODE;
2278 guint8 Exist_PERSISTENCE_LEVEL;
2279 guint8 PERSISTENCE_LEVEL[4];
2281 guint8 Exist_NLN;
2282 guint8 NLN;
2284 guint8 Count_Repeated_Page_info;
2285 Repeated_Page_info_t Repeated_Page_info[5];
2286 } Packet_Paging_Request_t;
2288 typedef struct
2290 guint8 MESSAGE_TYPE;
2291 guint8 PAGE_MODE;
2293 guint8 TIMESLOTS_AVAILABLE;
2294 } Packet_PDCH_Release_t;
2296 /* < Packet Power Control/Timing Advance message content > */
2297 typedef struct
2299 guint8 UnionType;
2300 union
2302 Global_TFI_t Global_TFI;
2303 guint16 TQI;
2304 Packet_Request_Reference_t Packet_Request_Reference;
2305 } u;
2306 } PacketPowerControlTimingAdvanceID_t;
2308 typedef struct
2310 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2311 Power_Control_Parameters_t Power_Control_Parameters;
2312 } GlobalTimingAndPower_t;
2314 typedef struct
2316 guint8 UnionType;
2317 union
2319 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2320 Power_Control_Parameters_t Power_Control_Parameters;
2321 } u;
2322 } GlobalTimingOrPower_t;
2324 typedef struct
2326 guint8 MESSAGE_TYPE;
2327 guint8 PAGE_MODE;
2329 PacketPowerControlTimingAdvanceID_t ID;
2331 /* -- Message escape */
2332 guint8 Exist_Global_Power_Control_Parameters;
2333 Global_Power_Control_Parameters_t Global_Power_Control_Parameters;
2335 guint8 UnionType;
2336 union
2338 GlobalTimingAndPower_t GlobalTimingAndPower;
2339 GlobalTimingOrPower_t GlobalTimingOrPower;
2340 } u;
2341 } Packet_Power_Control_Timing_Advance_t;
2343 /* < Packet Queueing Notification message content > */
2344 typedef struct
2346 guint8 MESSAGE_TYPE;
2347 guint8 PAGE_MODE;
2349 /* 111 Fixed */
2350 Packet_Request_Reference_t Packet_Request_Reference;
2351 guint16 TQI;
2352 } Packet_Queueing_Notification_t;
2354 /* < Packet Timeslot Reconfigure message content 04.60 sec. 11.2.31> */
2356 typedef Dynamic_Allocation_t TRDynamic_Allocation_t;
2358 typedef struct
2360 Global_Packet_Timing_Advance_t Global_Packet_Timing_Advance;
2362 guint8 DOWNLINK_RLC_MODE;
2363 guint8 CONTROL_ACK;
2365 guint8 Exist_DOWNLINK_TFI_ASSIGNMENT;
2366 guint8 DOWNLINK_TFI_ASSIGNMENT;
2368 guint8 Exist_UPLINK_TFI_ASSIGNMENT;
2369 guint8 UPLINK_TFI_ASSIGNMENT;
2371 guint8 DOWNLINK_TIMESLOT_ALLOCATION;
2373 guint8 Exist_Frequency_Parameters;
2374 Frequency_Parameters_t Frequency_Parameters;
2375 } Common_Timeslot_Reconfigure_t;
2377 typedef struct
2379 gboolean Exist_Packet_Extended_Timing_Advance;
2380 guint8 Packet_Extended_Timing_Advance;
2381 } PTR_GPRS_AdditionsR99_t;
2383 typedef struct
2385 guint8 CHANNEL_CODING_COMMAND;
2387 Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2389 guint8 UnionType;
2390 union
2392 TRDynamic_Allocation_t Dynamic_Allocation;
2393 guint8 Fixed_AllocationDummy;
2394 } u;
2396 gboolean Exist_AdditionsR99;
2397 PTR_GPRS_AdditionsR99_t AdditionsR99;
2398 } PTR_GPRS_t;
2400 typedef struct
2402 gboolean Exist_COMPACT_ReducedMA;
2403 COMPACT_ReducedMA_t COMPACT_ReducedMA;
2405 guint8 EGPRS_ChannelCodingCommand;
2406 guint8 RESEGMENT;
2408 gboolean Exist_DOWNLINK_EGPRS_WindowSize;
2409 guint8 DOWNLINK_EGPRS_WindowSize;
2411 gboolean Exist_UPLINK_EGPRS_WindowSize;
2412 guint8 UPLINK_EGPRS_WindowSize;
2414 guint8 LINK_QUALITY_MEASUREMENT_MODE;
2416 gboolean Exist_Packet_Extended_Timing_Advance;
2417 guint8 Packet_Extended_Timing_Advance;
2419 Common_Timeslot_Reconfigure_t Common_Timeslot_Reconfigure_Data;
2421 guint8 UnionType;
2422 union
2424 TRDynamic_Allocation_t Dynamic_Allocation;
2425 guint8 FixedAllocationDummy;
2426 } u;
2427 } PTR_EGPRS_00_t;
2429 typedef struct
2431 guint8 UnionType;
2432 union
2434 PTR_EGPRS_00_t PTR_EGPRS_00;
2435 guint8 extension_01;
2436 guint8 extension_10;
2437 guint8 extension_11;
2438 } u;
2439 } PTR_EGPRS_t;
2441 #if 0
2442 enum PTR_Type
2444 PTR_GPRS,
2445 PTR_EGPRS
2447 #endif
2449 typedef struct
2451 guint8 MESSAGE_TYPE;
2452 guint8 PAGE_MODE;
2454 Global_TFI_t Global_TFI;
2456 guint8 UnionType;
2457 union
2459 PTR_GPRS_t PTR_GPRS_Struct;
2460 PTR_EGPRS_t PTR_EGPRS_Struct;
2461 } u;
2462 } Packet_Timeslot_Reconfigure_t;
2465 /* < PSI1 message content > */
2466 typedef struct
2468 guint8 ACC_CONTR_CLASS[2];
2469 guint8 MAX_RETRANS[4];
2470 guint8 S;
2471 guint8 TX_INT;
2473 guint8 Exist_PERSISTENCE_LEVEL;
2474 guint8 PERSISTENCE_LEVEL[4];
2475 } PRACH_Control_t;
2477 typedef struct
2479 guint8 BS_PCC_REL;
2480 guint8 BS_PBCCH_BLKS;
2481 guint8 BS_PAG_BLKS_RES;
2482 guint8 BS_PRACH_BLKS;
2483 } PCCCH_Organization_t;
2485 typedef struct
2487 guint8 LB_MS_TXPWR_MAX_CCH;
2488 } PSI1_AdditionsR6_t;
2490 typedef struct
2492 guint8 MSCR;
2493 guint8 SGSNR;
2494 guint8 BandIndicator;
2495 gboolean Exist_AdditionsR6;
2496 PSI1_AdditionsR6_t AdditionsR6;
2497 } PSI1_AdditionsR99_t;
2499 typedef struct
2501 guint8 MESSAGE_TYPE;
2503 guint8 PAGE_MODE;
2504 guint8 PBCCH_CHANGE_MARK;
2505 guint8 PSI_CHANGE_FIELD;
2506 guint8 PSI1_REPEAT_PERIOD;
2507 guint8 PSI_COUNT_LR;
2509 guint8 Exist_PSI_COUNT_HR;
2510 guint8 PSI_COUNT_HR;
2512 guint8 MEASUREMENT_ORDER;
2513 GPRS_Cell_Options_t GPRS_Cell_Options;
2514 PRACH_Control_t PRACH_Control;
2515 PCCCH_Organization_t PCCCH_Organization;
2516 Global_Power_Control_Parameters_t Global_Power_Control_Parameters;
2517 guint8 PSI_STATUS_IND;
2519 gboolean Exist_AdditionsR99;
2520 PSI1_AdditionsR99_t AdditionsR99;
2521 } PSI1_t;
2523 /* < PSI2 message content > */
2524 typedef struct
2526 guint8 NUMBER;
2528 guint8 Length;
2529 guint8 Contents[15 + 3];/* octet (val(Length of RFL contents) + 3) */
2530 } Reference_Frequency_t;
2532 typedef struct
2534 guint8 NoOfRFLs;
2535 guint8 RFL_Number[MAX_RFLS];
2536 } Cell_Allocation_t;
2538 typedef struct
2540 guint8 NUMBER;
2541 GPRS_Mobile_Allocation_t Mobile_Allocation;
2542 } PSI2_MA_t;
2544 typedef struct
2546 guint16 ARFCN;
2547 guint8 TIMESLOT_ALLOCATION;
2548 } Non_Hopping_PCCCH_Carriers_t;
2550 typedef struct
2552 guint8 Count_Carriers;
2553 Non_Hopping_PCCCH_Carriers_t Carriers[7];
2554 } NonHoppingPCCCH_t;
2556 typedef struct
2558 guint8 MAIO;
2559 guint8 TIMESLOT_ALLOCATION;
2560 } Hopping_PCCCH_Carriers_t;
2562 typedef struct
2564 guint8 MA_NUMBER;
2566 guint8 Count_Carriers;
2567 Hopping_PCCCH_Carriers_t Carriers[10];/* MAX_PCCCH but 10 is theoretical max. */
2568 } HoppingPCCCH_t;
2570 typedef struct
2572 guint8 TSC;
2574 guint8 UnionType;
2575 union
2577 NonHoppingPCCCH_t NonHopping;
2578 HoppingPCCCH_t Hopping;
2579 } u;
2580 } PCCCH_Description_t;
2582 typedef struct
2584 LAI_t LAI;
2585 guint8 RAC;
2586 CellId_t Cell_Identity;
2587 } Cell_Identification_t;
2589 typedef struct
2591 guint8 ATT;
2593 guint8 Exist_T3212;
2594 guint8 T3212;
2596 guint8 NECI;
2597 guint8 PWRC;
2598 guint8 DTX;
2599 guint8 RADIO_LINK_TIMEOUT;
2600 guint8 BS_AG_BLKS_RES;
2601 guint8 CCCH_CONF;
2602 guint8 BS_PA_MFRMS;
2603 guint8 MAX_RETRANS;
2604 guint8 TX_INTEGER;
2605 guint8 EC;
2606 guint8 MS_TXPWR_MAX_CCCH;
2608 guint8 Exist_Extension_Bits;
2609 Extension_Bits_t Extension_Bits;
2610 } Non_GPRS_Cell_Options_t;
2612 typedef struct
2614 guint8 MESSAGE_TYPE;
2615 guint8 PAGE_MODE;
2616 guint8 CHANGE_MARK;
2617 guint8 INDEX;
2618 guint8 COUNT;
2620 guint8 Exist_Cell_Identification;
2621 Cell_Identification_t Cell_Identification;
2623 guint8 Exist_Non_GPRS_Cell_Options;
2624 Non_GPRS_Cell_Options_t Non_GPRS_Cell_Options;
2626 guint8 Count_Reference_Frequency;
2627 Reference_Frequency_t Reference_Frequency[MAX_RFLS];
2629 Cell_Allocation_t Cell_Allocation;
2631 guint8 Count_GPRS_MA;
2632 PSI2_MA_t GPRS_MA[MAX_MA_LISTS_IN_PSI2];
2634 guint8 Count_PCCCH_Description;
2635 PCCCH_Description_t PCCCH_Description[7];/* MAX_PCCCH but it is impossible that more than 7 can be decoded */
2636 } PSI2_t;
2638 /* < PSI3 message content > */
2639 typedef struct
2641 guint8 PRIORITY_CLASS;
2642 guint8 HCS_THR;
2643 } HCS_t;
2645 typedef struct
2647 guint8 CELL_BAR_ACCESS_2;
2648 guint8 EXC_ACC;
2649 guint8 GPRS_RXLEV_ACCESS_MIN;
2650 guint8 GPRS_MS_TXPWR_MAX_CCH;
2652 guint8 Exist_HCS;
2653 HCS_t HCS;
2654 guint8 MULTIBAND_REPORTING;
2655 } Serving_Cell_params_t;
2657 typedef struct
2659 guint8 GPRS_CELL_RESELECT_HYSTERESIS;
2660 guint8 C31_HYST;
2661 guint8 C32_QUAL;
2662 guint8 RANDOM_ACCESS_RETRY;
2664 guint8 Exist_T_RESEL;
2665 guint8 T_RESEL;
2667 guint8 Exist_RA_RESELECT_HYSTERESIS;
2668 guint8 RA_RESELECT_HYSTERESIS;
2669 } Gen_Cell_Sel_t;
2671 typedef struct
2673 guint8 PBCCH_LOCATION;
2674 guint8 PSI1_REPEAT_PERIOD;
2675 } Location_Repeat_t;
2677 typedef struct
2679 guint8 UnionType;
2680 union
2682 guint8 SI13_LOCATION;
2683 Location_Repeat_t lr;
2684 } u;
2685 } SI13_PBCCH_Location_t;
2687 typedef struct
2689 guint8 BSIC;
2690 guint8 CELL_BAR_ACCESS_2;
2691 guint8 EXC_ACC;
2692 guint8 SAME_RA_AS_SERVING_CELL;
2694 guint8 Exist_RXLEV_and_TXPWR;
2695 guint8 GPRS_RXLEV_ACCESS_MIN;
2696 guint8 GPRS_MS_TXPWR_MAX_CCH;
2698 guint8 Exist_OFFSET_and_TIME;
2699 guint8 GPRS_TEMPORARY_OFFSET;
2700 guint8 GPRS_PENALTY_TIME;
2702 guint8 Exist_GPRS_RESELECT_OFFSET;
2703 guint8 GPRS_RESELECT_OFFSET;
2705 guint8 Exist_HCS;
2706 HCS_t HCS;
2708 guint8 Exist_SI13_PBCCH_Location;
2709 SI13_PBCCH_Location_t SI13_PBCCH_Location;
2710 } Cell_Selection_t;
2712 /* Neigbour cell list as used in PSI3 and PSI3bis */
2713 typedef struct
2715 guint8 FREQ_DIFF_LENGTH;
2716 guint8 FREQUENCY_DIFF;
2718 Cell_Selection_t Cell_SelectionParams;
2719 } Cell_Selection_Params_With_FreqDiff_t;
2721 typedef struct
2723 guint16 START_FREQUENCY;
2724 Cell_Selection_t Cell_Selection;
2725 guint8 NR_OF_REMAINING_CELLS;
2726 guint8 FREQ_DIFF_LENGTH;
2728 Cell_Selection_Params_With_FreqDiff_t Cell_Selection_Params_With_FreqDiff[16];
2729 } NeighbourCellParameters_t;
2731 typedef struct
2733 guint8 Count;
2734 NeighbourCellParameters_t Parameters[32];
2735 } NeighbourCellList_t;
2737 /* < PSI3 message content > */
2739 typedef struct
2741 guint8 bsic;
2742 guint8 CELL_BAR_ACCESS_2;
2743 guint8 EXC_ACC;
2744 guint8 SAME_RA_AS_SERVING_CELL;
2745 guint8 Exist_GPRS_RXLEV_ACCESS_MIN;
2746 guint8 GPRS_RXLEV_ACCESS_MIN;
2747 guint8 GPRS_MS_TXPWR_MAX_CCH;
2748 guint8 Exist_GPRS_TEMPORARY_OFFSET;
2749 guint8 GPRS_TEMPORARY_OFFSET;
2750 guint8 GPRS_PENALTY_TIME;
2751 guint8 Exist_GPRS_RESELECT_OFFSET;
2752 guint8 GPRS_RESELECT_OFFSET;
2753 guint8 Exist_Hcs_Parm;
2754 HCS_t HCS_Param;
2755 guint8 Exist_TIME_GROUP;
2756 guint8 TIME_GROUP;
2757 guint8 Exist_GUAR_CONSTANT_PWR_BLKS;
2758 guint8 GUAR_CONSTANT_PWR_BLKS;
2759 } COMPACT_Cell_Sel_t;
2761 typedef struct
2763 guint8 FREQ_DIFF_LENGTH;
2764 guint16 FREQUENCY_DIFF;
2765 COMPACT_Cell_Sel_t COMPACT_Cell_Sel_Remain_Cells;
2766 } COMPACT_Neighbour_Cell_Param_Remaining_t;
2768 typedef struct
2770 guint16 START_FREQUENCY;
2771 COMPACT_Cell_Sel_t COMPACT_Cell_Sel;
2772 guint8 NR_OF_REMAINING_CELLS;
2773 guint8 FREQ_DIFF_LENGTH;
2774 COMPACT_Neighbour_Cell_Param_Remaining_t COMPACT_Neighbour_Cell_Param_Remaining[16];
2775 } COMPACT_Neighbour_Cell_Param_t;
2777 typedef struct
2779 Cell_Identification_t Cell_Identification;
2780 guint8 COMPACT_Neighbour_Cell_Param_Count;
2781 COMPACT_Neighbour_Cell_Param_t COMPACT_Neighbour_Cell_Param[8];
2782 } COMPACT_Info_t;
2784 typedef struct
2786 guint8 Exist_CCN_Support_Desc;
2787 CCN_Support_Description_t CCN_Support_Desc;
2788 } PSI3_AdditionR4_t;
2790 typedef struct
2792 guint8 Exist_COMPACT_Info;
2793 COMPACT_Info_t COMPACT_Info;
2794 guint8 Exist_AdditionR4;
2795 PSI3_AdditionR4_t AdditionR4;
2796 } PSI3_AdditionR99_t;
2798 typedef struct
2800 LSA_ID_Info_t Scell_LSA_ID_Info;
2801 guint8 Exist_LSA_Parameters;
2802 LSA_Parameters_t LSA_Parameters;
2803 guint8 Exist_AdditionR99;
2804 PSI3_AdditionR99_t AdditionR99;
2805 } PSI3_AdditionR98_t;
2807 typedef struct
2809 guint8 MESSAGE_TYPE;
2810 guint8 PAGE_MODE;
2811 guint8 CHANGE_MARK;
2812 guint8 BIS_COUNT;
2814 Serving_Cell_params_t Serving_Cell_params;
2816 Gen_Cell_Sel_t General_Cell_Selection;
2817 NeighbourCellList_t NeighbourCellList;
2819 guint8 Exist_AdditionR98;
2820 PSI3_AdditionR98_t AdditionR98;
2821 } PSI3_t;
2823 /* < PSI3_BIS message content > */
2824 typedef struct
2826 guint8 MESSAGE_TYPE;
2827 guint8 PAGE_MODE;
2828 guint8 CHANGE_MARK;
2829 guint8 BIS_INDEX;
2830 guint8 BIS_COUNT;
2832 NeighbourCellList_t NeighbourCellList;
2833 } PSI3_BIS_t;
2835 /* < PSI4 message content > */
2836 typedef struct
2838 guint8 MA_NUMBER;
2839 guint8 MAIO;
2840 } h_CG_t;
2842 typedef struct
2844 guint8 UnionType;
2845 union
2847 guint16 ARFCN;
2848 h_CG_t h_CG;
2849 } u;
2851 guint8 TIMESLOT_ALLOCATION;
2852 } Channel_Group_t;
2854 typedef struct
2856 /* Channel_Group_t Channel_Group
2857 * At least one
2858 * the first one is unpacked in the index
2860 guint8 Count_Channel_Group;
2861 Channel_Group_t Channel_Group[8];
2862 } Channel_List_t;
2864 typedef struct
2866 guint8 MESSAGE_TYPE;
2868 guint8 PAGE_MODE;
2869 guint8 CHANGE_MARK;
2870 guint8 INDEX;
2871 guint8 COUNT;
2873 Channel_List_t Channel_List;
2875 } PSI4_t;
2878 /* < PSI5 message content > */
2879 typedef struct
2881 guint8 existRepParamsFDD;
2882 guint8 RepQuantFDD;
2883 guint8 MultiratReportingFDD;
2885 guint8 existReportingParamsFDD;
2886 guint8 ReportingOffsetFDD;
2887 guint8 ReportingThresholdFDD;
2889 guint8 existMultiratReportingTDD;
2890 guint8 MultiratReportingTDD;
2892 guint8 existOffsetThresholdTDD;
2893 guint8 ReportingOffsetTDD;
2894 guint8 ReportingThresholdTDD;
2895 } GPRSMeasurementParams3G_PSI5_t;
2897 typedef struct
2899 guint8 REPORT_TYPE;
2900 guint8 REPORTING_RATE;
2901 guint8 INVALID_BSIC_REPORTING;
2902 guint8 Exist_NCC_PERMITTED;
2903 guint8 NCC_PERMITTED;
2905 gboolean Exist_GPRSMeasurementParams;
2906 MeasurementParams_t GPRSMeasurementParams;
2907 gboolean Exist_GPRSMeasurementParams3G;
2908 GPRSMeasurementParams3G_PSI5_t GPRSMeasurementParams3G;
2909 } ENH_Reporting_Parameters_t;
2911 typedef struct
2913 guint8 Exist_OffsetThreshold_700;
2914 OffsetThreshold_t OffsetThreshold_700;
2915 guint8 Exist_OffsetThreshold_810;
2916 OffsetThreshold_t OffsetThreshold_810;
2917 } PSI5_AdditionsR7;
2919 typedef struct
2921 guint8 Exist_GPRS_AdditionalMeasurementParams3G;
2922 GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
2923 guint8 Exist_AdditionsR7;
2924 PSI5_AdditionsR7 AdditionsR7;
2925 } PSI5_AdditionsR5;
2927 typedef struct
2929 guint8 Exist_ENH_Reporting_Param;
2930 ENH_Reporting_Parameters_t ENH_Reporting_Param;
2931 guint8 Exist_AdditionsR5;
2932 PSI5_AdditionsR5 AdditionisR5;
2933 } PSI5_AdditionsR99;
2935 typedef struct
2937 guint8 MESSAGE_TYPE;
2939 guint8 PAGE_MODE;
2940 guint8 CHANGE_MARK;
2941 guint8 INDEX;
2942 guint8 COUNT;
2944 guint8 Eixst_NC_Meas_Param;
2945 NC_Measurement_Parameters_t NC_Meas_Param;
2946 guint8 Exist_AdditionsR99;
2947 PSI5_AdditionsR99 AdditionsR99;
2948 } PSI5_t;
2953 /* < PSI13 message content >
2954 * Combined with SI13
2956 typedef struct
2958 guint8 Exist_LB_MS_TXPWR_MAX_CCH;
2959 guint8 LB_MS_TXPWR_MAX_CCH;
2960 guint8 SI2n_SUPPORT;
2961 }PSI13_AdditionsR6;
2963 typedef PSI13_AdditionsR6 SI13_AdditionsR6;
2965 typedef struct
2967 guint8 SI_STATUS_IND;
2968 guint8 Exist_AdditionsR6;
2969 PSI13_AdditionsR6 AdditionsR6;
2970 }PSI13_AdditionsR4;
2972 typedef PSI13_AdditionsR4 SI13_AdditionsR4;
2974 typedef struct
2976 guint8 SGSNR;
2977 gboolean Exist_AdditionsR4;
2978 PSI13_AdditionsR4 AdditionsR4;
2979 }PSI13_AdditionR99;
2981 typedef PSI13_AdditionR99 SI13_AdditionR99;
2983 typedef struct
2985 guint8 Exist;
2986 guint8 MESSAGE_TYPE;
2988 guint8 PAGE_MODE;
2989 guint8 BCCH_CHANGE_MARK;
2990 guint8 SI_CHANGE_FIELD;
2992 guint8 Exist_MA;
2993 guint8 SI13_CHANGE_MARK;
2994 GPRS_Mobile_Allocation_t GPRS_Mobile_Allocation;
2996 guint8 UnionType;
2997 union
2999 PBCCH_Not_present_t PBCCH_Not_present;
3000 PBCCH_present_t PBCCH_present;
3001 } u;
3003 gboolean Exist_AdditionsR99;
3004 PSI13_AdditionR99 AdditionsR99;
3005 } PSI13_t;
3007 /* SI_13_t is combined in the PSI13 structure */
3008 typedef PSI13_t SI_13_t;
3010 /* < Packet PRACH Parameters message content > */
3011 typedef struct
3013 guint8 MESSAGE_TYPE;
3014 guint8 PAGE_MODE;
3017 PRACH_Control_t PRACH_Control;
3018 } Packet_PRACH_Parameters_t;
3020 /* < Packet Access Reject message content > */
3021 typedef struct
3023 guint8 UnionType;
3024 union
3026 guint32 TLLI;
3027 Packet_Request_Reference_t Packet_Request_Reference;
3028 Global_TFI_t Global_TFI;
3029 } u;
3030 } RejectID_t;
3032 typedef struct
3034 RejectID_t ID;
3036 guint8 Exist_Wait;
3037 guint8 WAIT_INDICATION;
3038 guint8 WAIT_INDICATION_SIZE;
3039 } Reject_t;
3041 typedef struct
3043 guint8 MESSAGE_TYPE;
3044 guint8 PAGE_MODE;
3046 guint8 IndexToOur;
3047 guint8 Count_Reject;
3048 Reject_t Reject[5];
3049 } Packet_Access_Reject_t;
3051 /* < Packet Cell Change Order message content > */
3052 typedef struct
3054 guint8 CELL_BAR_ACCESS_2;
3055 guint8 EXC_ACC;
3056 guint8 SAME_RA_AS_SERVING_CELL;
3058 guint8 Exist_RXLEV_and_TXPWR;
3059 guint8 GPRS_RXLEV_ACCESS_MIN;
3060 guint8 GPRS_MS_TXPWR_MAX_CCH;
3062 guint8 Exist_OFFSET_and_TIME;
3063 guint8 GPRS_TEMPORARY_OFFSET;
3064 guint8 GPRS_PENALTY_TIME;
3066 guint8 Exist_GPRS_RESELECT_OFFSET;
3067 guint8 GPRS_RESELECT_OFFSET;
3069 guint8 Exist_HCS;
3070 HCS_t HCS;
3072 guint8 Exist_SI13_PBCCH_Location;
3073 SI13_PBCCH_Location_t SI13_PBCCH_Location;
3074 } Cell_Selection_2_t;
3076 typedef struct
3078 guint8 FREQUENCY_DIFF;
3079 guint8 BSIC;
3080 Cell_Selection_t Cell_Selection;
3081 } h_FreqBsicCell_t;
3083 typedef struct
3085 guint8 FREQ_DIFF_LENGTH;
3086 guint8 FREQUENCY_DIFF;
3087 guint8 BSIC;
3089 gboolean Exist_CellSelectionParams;
3090 Cell_Selection_2_t CellSelectionParams;
3091 } CellSelectionParamsWithFreqDiff_t;
3093 typedef struct
3095 guint16 START_FREQUENCY;
3096 guint8 BSIC;
3098 guint8 Exist_Cell_Selection;
3099 Cell_Selection_2_t Cell_Selection;
3101 guint8 NR_OF_FREQUENCIES;
3102 guint8 FREQ_DIFF_LENGTH;
3105 CellSelectionParamsWithFreqDiff_t CellSelectionParamsWithFreqDiff[32];
3106 } Add_Frequency_list_t;
3108 typedef struct
3110 guint8 REMOVED_FREQ_INDEX;
3111 } Removed_Freq_Index_t;
3113 typedef struct
3115 guint8 Exist_REMOVED_FREQ;
3116 guint8 NR_OF_REMOVED_FREQ;
3117 Removed_Freq_Index_t Removed_Freq_Index[32];
3119 guint8 Count_Add_Frequency;
3120 Add_Frequency_list_t Add_Frequency[32];
3121 } NC_Frequency_list_t;
3124 typedef struct
3126 guint8 NETWORK_CONTROL_ORDER;
3128 guint8 Exist_NC;
3129 guint8 NC_NON_DRX_PERIOD;
3130 guint8 NC_REPORTING_PERIOD_I;
3131 guint8 NC_REPORTING_PERIOD_T;
3133 guint8 Exist_NC_FREQUENCY_LIST;
3134 NC_Frequency_list_t NC_Frequency_list;
3135 } NC_Measurement_Parameters_with_Frequency_List_t;
3138 typedef struct
3140 guint8 BA_IND;
3141 guint8 BA_IND_3G;
3142 } BA_IND_t;
3144 typedef struct
3146 guint8 BA_USED;
3147 guint8 BA_USED_3G;
3148 } BA_USED_t;
3150 typedef struct
3152 guint8 RXLEV_SERVING_CELL;
3153 } Serving_Cell_Data_t;
3155 typedef struct
3157 guint8 FREQUENCY_N;
3158 guint8 Exist_BSIC_N;
3159 guint8 BSIC_N;
3160 guint8 RXLEV_N;
3161 } NC_Measurements_t;
3163 typedef struct
3165 guint8 BCCH_FREQ_N;
3166 guint8 BSIC_N;
3167 guint8 RXLEV_N;
3168 } RepeatedInvalid_BSIC_Info_t;
3170 typedef struct
3172 guint8 Exist_REPORTING_QUANTITY;
3173 guint8 REPORTING_QUANTITY;
3174 } REPORTING_QUANTITY_Instance_t;
3176 typedef struct
3178 guint8 NC_MODE;
3179 Serving_Cell_Data_t Serving_Cell_Data;
3181 guint8 NUMBER_OF_NC_MEASUREMENTS;
3182 NC_Measurements_t NC_Measurements[6]; /* NC_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3183 Max 7 NC Measurements in one PACKET MEASUREMENT REPORT,
3184 but only 6 cells are updated in PACKET IDLE. */
3185 } NC_Measurement_Report_t;
3187 typedef struct
3189 guint8 EXT_REPORTING_TYPE;
3191 guint8 Exist_I_LEVEL;
3192 struct
3194 guint8 Exist;
3195 guint8 I_LEVEL;
3196 } Slot[8];
3198 guint8 NUMBER_OF_EXT_MEASUREMENTS;
3199 NC_Measurements_t EXT_Measurements[9]; /* EXT_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3200 Max 9 Ext Measurements in one PACKET MEASUREMENT REPORT */
3201 } EXT_Measurement_Report_t;
3203 typedef struct
3205 guint8 CELL_LIST_INDEX_3G;
3206 guint8 REPORTING_QUANTITY;
3207 } Measurements_3G_t;
3209 typedef struct
3211 guint32 UTRAN_CGI;
3212 guint8 Exist_PLMN_ID;
3213 PLMN_t Plmn_ID;
3214 guint32 CSG_ID;
3215 gboolean Access_Mode;
3216 guint8 REPORTING_QUANTITY;
3217 } UTRAN_CSG_Measurement_Report_t;
3219 typedef struct
3221 guint32 EUTRAN_CGI;
3222 guint16 Tracking_Area_Code;
3223 guint8 Exist_PLMN_ID;
3224 PLMN_t Plmn_ID;
3225 guint32 CSG_ID;
3226 gboolean Access_Mode;
3227 guint8 REPORTING_QUANTITY;
3228 } EUTRAN_CSG_Measurement_Report_t;
3230 typedef struct
3232 gboolean Exist_UTRAN_CSG_Meas_Rpt;
3233 UTRAN_CSG_Measurement_Report_t UTRAN_CSG_Meas_Rpt;
3234 gboolean Exist_EUTRAN_CSG_Meas_Rpt;
3235 EUTRAN_CSG_Measurement_Report_t EUTRAN_CSG_Meas_Rpt;
3236 } PMR_AdditionsR9_t;
3238 typedef struct
3240 guint8 EUTRAN_FREQUENCY_INDEX;
3241 guint16 CELL_IDENTITY;
3242 guint8 REPORTING_QUANTITY;
3243 } EUTRAN_Measurement_Report_Body_t;
3245 typedef struct
3247 guint8 N_EUTRAN;
3248 EUTRAN_Measurement_Report_Body_t Report[4];
3249 } EUTRAN_Measurement_Report_t;
3251 typedef struct
3253 gboolean Exist_EUTRAN_Meas_Rpt;
3254 EUTRAN_Measurement_Report_t EUTRAN_Meas_Rpt;
3255 gboolean Exist_AdditionsR9;
3256 PMR_AdditionsR9_t AdditionsR9;
3257 } PMR_AdditionsR8_t;
3259 typedef struct
3261 gboolean Exist_GRNTI;
3262 guint8 GRNTI;
3263 gboolean Exist_AdditionsR8;
3264 PMR_AdditionsR8_t AdditionsR8;
3265 } PMR_AdditionsR5_t;
3267 typedef struct
3269 gboolean Exist_Info3G;
3270 guint8 UnionType;
3271 union
3273 BA_USED_t BA_USED;
3274 guint8 PSI3_CHANGE_MARK;
3275 } u;
3276 guint8 PMO_USED;
3278 /* N_3G bit(3): max value 7
3279 * Report part (csn): {<3G_CELL_LIST_INDEX:bit(7)><REPORTING_QUANTITY:bit(6)>}*(val(N_3G + 1))
3280 * Max 6 3G measurement structs in one PMR
3282 gboolean Exist_MeasurementReport3G;
3283 guint8 N_3G;
3284 Measurements_3G_t Measurements_3G[6];
3286 gboolean Exist_AdditionsR5;
3287 PMR_AdditionsR5_t AdditionsR5;
3288 } PMR_AdditionsR99_t;
3290 typedef struct
3292 guint8 MESSAGE_TYPE;
3293 guint8 PayloadType;
3294 guint8 spare;
3295 guint8 R;
3297 guint32 TLLI;
3298 guint8 Exist_PSI5_CHANGE_MARK;
3299 guint8 PSI5_CHANGE_MARK;
3301 guint8 UnionType;
3302 union
3304 NC_Measurement_Report_t NC_Measurement_Report;
3305 EXT_Measurement_Report_t EXT_Measurement_Report;
3306 } u;
3308 gboolean Exist_AdditionsR99;
3309 PMR_AdditionsR99_t AdditionsR99;
3310 } Packet_Measurement_Report_t;
3312 #define INV_BSIC_LIST_LEN (16)
3314 #define REPORT_QUANTITY_LIST_LEN (96) /* Specification specified up to 96 */
3316 typedef struct
3318 guint8 NC_MODE;
3319 guint8 UnionType;
3320 union
3322 BA_USED_t BA_USED;
3323 guint8 PSI3_CHANGE_MARK;
3324 } u;
3326 guint8 PMO_USED;
3327 guint8 BSIC_Seen;
3328 guint8 SCALE;
3330 guint8 Exist_Serving_Cell_Data;
3331 Serving_Cell_Data_t Serving_Cell_Data;
3333 guint8 Count_RepeatedInvalid_BSIC_Info;
3334 RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
3336 guint8 Exist_ReportBitmap;
3337 guint8 Count_REPORTING_QUANTITY_Instances;
3338 REPORTING_QUANTITY_Instance_t REPORTING_QUANTITY_Instances[REPORT_QUANTITY_LIST_LEN];
3340 } ENH_NC_Measurement_Report_t;
3342 typedef struct
3344 guint8 Exist_UTRAN_CSG_Target_Cell;
3345 UTRAN_CSG_Target_Cell_t UTRAN_CSG_Target_Cell;
3346 guint8 Exist_EUTRAN_CSG_Target_Cell;
3347 EUTRAN_CSG_Target_Cell_t EUTRAN_CSG_Target_Cell;
3348 } PEMR_AdditionsR9_t;
3350 typedef struct
3352 gboolean Exist_REPORTING_QUANTITY;
3353 guint8 REPORTING_QUANTITY;
3354 } Bitmap_Report_Quantity_t;
3356 typedef struct
3358 guint8 BITMAP_LENGTH;
3359 Bitmap_Report_Quantity_t Bitmap_Report_Quantity[128];
3360 gboolean Exist_EUTRAN_Meas_Rpt;
3361 EUTRAN_Measurement_Report_t EUTRAN_Meas_Rpt;
3362 gboolean Exist_AdditionsR9;
3363 PEMR_AdditionsR9_t AdditionsR9;
3364 } PEMR_AdditionsR8_t;
3366 typedef struct
3368 gboolean Exist_GRNTI_Ext;
3369 guint8 GRNTI_Ext;
3370 gboolean Exist_AdditionsR8;
3371 PEMR_AdditionsR8_t AdditionsR8;
3372 } PEMR_AdditionsR5_t;
3374 typedef struct
3376 guint8 MESSAGE_TYPE;
3377 guint8 PayloadType;
3378 guint8 spare;
3379 guint8 R;
3381 guint32 TLLI;
3383 ENH_NC_Measurement_Report_t Measurements;
3385 gboolean Exist_AdditionsR5;
3386 PEMR_AdditionsR5_t AdditionsR5;
3387 } Packet_Enh_Measurement_Report_t;
3389 typedef struct
3391 guint8 RXLEV_SERVING_CELL;
3393 guint8 NUMBER_OF_NC_MEASUREMENTS;
3394 NC_Measurements_t NC_Measurements[6]; /* NC_Measurements * (val(NUMBER_OF_NC_MEASUREMENTS))
3395 Max 7 NC Measurements in one PACKET MEASUREMENT REPORT,
3396 but only 6 cells are updated in PACKET IDLE. */
3397 } CCN_Measurement_Report_t;
3399 typedef struct
3401 guint16 ARFCN;
3402 guint8 BSIC;
3403 } Target_Cell_GSM_Notif_t;
3405 typedef struct
3407 guint16 FDD_ARFCN;
3408 guint8 Exist_Bandwith_FDD;
3409 guint8 BANDWITH_FDD;
3410 guint16 SCRAMBLING_CODE;
3411 } FDD_Target_Cell_Notif_t;
3413 typedef struct
3415 guint16 TDD_ARFCN;
3416 guint8 Exist_Bandwith_TDD;
3417 guint8 BANDWITH_TDD;
3418 guint8 CELL_PARAMETER;
3419 guint8 Sync_Case_TSTD;
3420 } TDD_Target_Cell_Notif_t;
3422 typedef struct
3424 guint8 Exist_FDD_Description;
3425 FDD_Target_Cell_Notif_t FDD_Target_Cell_Notif;
3426 guint8 Exist_TDD_Description;
3427 TDD_Target_Cell_Notif_t TDD_Target_Cell;
3428 guint8 REPORTING_QUANTITY;
3429 } Target_Cell_3G_Notif_t;
3431 typedef struct
3433 guint16 EARFCN;
3434 guint8 Exist_Measurement_Bandwidth;
3435 guint8 Measurement_Bandwidth;
3436 guint16 Physical_Layer_Cell_Identity;
3437 guint8 Reporting_Quantity;
3438 } Target_EUTRAN_Cell_Notif_t;
3440 typedef struct
3442 guint8 EUTRAN_FREQUENCY_INDEX;
3443 guint16 CELL_IDENTITY;
3444 guint8 REPORTING_QUANTITY;
3445 } Eutran_Ccn_Measurement_Report_Cell_t;
3447 typedef struct
3449 gboolean ThreeG_BA_USED;
3450 guint8 N_EUTRAN;
3451 Eutran_Ccn_Measurement_Report_Cell_t Eutran_Ccn_Measurement_Report_Cell[4];
3452 } Eutran_Ccn_Measurement_Report_t;
3454 typedef struct
3456 guint8 Exist_Arfcn;
3457 guint16 Arfcn;
3458 guint8 bsic;
3459 guint8 Exist_3G_Target_Cell;
3460 Target_Cell_3G_Notif_t Target_Cell_3G_Notif;
3461 guint8 Exist_Eutran_Target_Cell;
3462 Target_EUTRAN_Cell_Notif_t Target_EUTRAN_Cell;
3463 guint8 Exist_Eutran_Ccn_Measurement_Report;
3464 Eutran_Ccn_Measurement_Report_t Eutran_Ccn_Measurement_Report;
3465 } Target_Cell_4G_Notif_t;
3467 typedef struct
3469 guint8 UnionType;
3470 union
3472 UTRAN_CSG_Measurement_Report_t UTRAN_CSG_Measurement_Report;
3473 EUTRAN_CSG_Measurement_Report_t EUTRAN_CSG_Measurement_Report;
3474 } u;
3475 guint8 Exist_Eutran_Ccn_Measurement_Report;
3476 Eutran_Ccn_Measurement_Report_t Eutran_Ccn_Measurement_Report;
3477 } Target_Cell_CSG_Notif_t;
3479 typedef struct
3481 guint8 UnionType;
3482 union
3484 Target_Cell_4G_Notif_t Target_Cell_4G_Notif;
3485 Target_Cell_CSG_Notif_t Target_Cell_CSG_Notif;
3486 } u;
3487 } Target_Other_RAT_2_Notif_t;
3489 typedef struct
3491 guint8 UnionType;
3492 union
3494 Target_Cell_3G_Notif_t Target_Cell_3G_Notif;
3495 Target_Other_RAT_2_Notif_t Target_Other_RAT_2_Notif;
3496 } u;
3497 } Target_Other_RAT_Notif_t;
3499 typedef struct
3501 guint8 UnionType;
3502 union
3504 Target_Cell_GSM_Notif_t Target_Cell_GSM_Notif;
3505 Target_Other_RAT_Notif_t Target_Other_RAT_Notif;
3506 } u;
3507 } Target_Cell_t;
3509 typedef struct
3511 guint8 Exist_BA_USED_3G;
3512 guint8 BA_USED_3G;
3514 guint8 N_3G;
3515 Measurements_3G_t Measurements_3G[6];
3516 } PCCN_AdditionsR6_t;
3518 /* < Packet Cell Change Notification message contents > */
3519 typedef struct
3521 guint8 MESSAGE_TYPE;
3522 guint8 PayloadType;
3523 guint8 spare;
3524 guint8 R;
3526 Global_TFI_t Global_TFI;
3528 Target_Cell_t Target_Cell;
3530 guint8 UnionType;
3531 union
3533 guint8 BA_IND;
3534 guint8 PSI3_CHANGE_MARK;
3535 } u;
3536 guint8 PMO_USED;
3537 guint8 PCCN_SENDING;
3538 CCN_Measurement_Report_t CCN_Measurement_Report;
3540 gboolean Exist_AdditionsR6;
3541 PCCN_AdditionsR6_t AdditionsR6;
3542 } Packet_Cell_Change_Notification_t;
3544 /* < Packet Cell Change Order message contents > */
3547 typedef struct
3549 guint8 FrequencyScrolling;
3550 guint8 BSIC;
3551 } BSICDesc_t;
3554 #define MAX_BSIC_DESCS (19) /* Due to message size (23 bytes) and header etc,
3555 * there cannot be more than 19 DESCS.
3558 typedef struct
3560 gboolean Exist_IndexStartBA;
3561 guint8 IndexStartBA;
3562 guint8 BSIC;
3563 guint8 NumRemainingBSICs;
3564 BSICDesc_t BSICDesc[MAX_BSIC_DESCS];
3565 } BSICList_t;
3567 typedef BSICList_t GPRSBSICList_t;
3569 #define MAX_RTD_VALUES (6)
3571 typedef struct
3573 guint8 NumRTDValues;
3574 guint16 RTD[MAX_RTD_VALUES];
3575 } RTDValues_t;
3577 typedef struct
3579 gboolean Exist_StartValue;
3580 guint8 StartValue;
3581 } BAIndexStartRTD_t;
3583 #define MAX_RTD_FREQS (32)
3585 typedef struct
3587 BAIndexStartRTD_t BAIndexStart;
3588 guint8 NumFreqs;
3589 RTDValues_t RTD_s[MAX_RTD_FREQS];
3590 } RTDList_t;
3592 typedef struct
3594 gboolean Exist_ListRTD6;
3595 RTDList_t ListRTD6;
3597 gboolean Exist_ListRTD12;
3598 RTDList_t ListRTD12;
3599 } RealTimeDiffs_t;
3602 typedef MeasurementParams_t GPRSMeasurementParams_PMO_PCCO_t;
3604 typedef struct {
3605 gboolean existMultiratReporting;
3606 guint8 MultiratReporting;
3608 gboolean existOffsetThreshold;
3609 OffsetThreshold_t OffsetThreshold;
3610 } MultiratParams3G_t;
3612 typedef struct
3614 guint8 Qsearch_P;
3615 guint8 SearchPrio3G;
3617 gboolean existRepParamsFDD;
3618 guint8 RepQuantFDD;
3619 guint8 MultiratReportingFDD;
3621 gboolean existOffsetThreshold;
3622 OffsetThreshold_t OffsetThreshold;
3624 MultiratParams3G_t ParamsTDD;
3625 MultiratParams3G_t ParamsCDMA2000;
3626 } ENH_GPRSMeasurementParams3G_PMO_t;
3629 typedef struct
3631 guint8 Qsearch_P;
3632 guint8 SearchPrio3G;
3634 gboolean existRepParamsFDD;
3635 guint8 RepQuantFDD;
3636 guint8 MultiratReportingFDD;
3638 gboolean existOffsetThreshold;
3639 OffsetThreshold_t OffsetThreshold;
3641 MultiratParams3G_t ParamsTDD;
3642 } ENH_GPRSMeasurementParams3G_PCCO_t;
3645 typedef struct
3647 guint8 Qsearch_p;
3648 guint8 SearchPrio3G;
3650 guint8 existRepParamsFDD;
3651 guint8 RepQuantFDD;
3652 guint8 MultiratReportingFDD;
3654 guint8 existReportingParamsFDD;
3655 guint8 ReportingOffsetFDD;
3656 guint8 ReportingThresholdFDD;
3658 guint8 existMultiratReportingTDD;
3659 guint8 MultiratReportingTDD;
3661 guint8 existOffsetThresholdTDD;
3662 guint8 ReportingOffsetTDD;
3663 guint8 ReportingThresholdTDD;
3664 } GPRSMeasurementParams3G_t;
3666 typedef struct
3668 guint8 REMOVED_3GCELL_INDEX;
3669 guint8 CELL_DIFF_LENGTH_3G;
3670 guint8 CELL_DIFF_3G;
3671 } N2_t;
3673 typedef struct
3675 guint8 N2_Count;
3676 N2_t N2s[32];
3677 } N1_t;
3679 typedef struct
3681 guint8 N1_Count;
3682 N1_t N1s[4];
3683 } Removed3GCellDescription_t;
3685 typedef struct
3687 guint8 Complete_This;
3688 } CDMA2000_Description_t;
3690 typedef struct {
3691 guint8 ZERO;
3692 guint16 UARFCN;
3693 guint8 Indic0;
3694 guint8 NrOfCells;
3695 guint8 BitsInCellInfo;
3696 guint8 CellInfo[16]; /* bitmap compressed according to "Range 1024" algorithm (04.18/9.1.54) */
3697 } UTRAN_FDD_NeighbourCells_t;
3699 typedef struct {
3700 gboolean existBandwidth;
3701 guint8 Bandwidth;
3702 guint8 NrOfFrequencies;
3703 UTRAN_FDD_NeighbourCells_t CellParams[8];
3704 } UTRAN_FDD_Description_t;
3706 typedef struct {
3707 guint8 ZERO;
3708 guint16 UARFCN;
3709 guint8 Indic0;
3710 guint8 NrOfCells;
3711 guint8 BitsInCellInfo;
3712 guint8 CellInfo[16]; /* bitmap compressed according to "Range 512" algorithm */
3713 } UTRAN_TDD_NeighbourCells_t;
3715 typedef struct {
3716 gboolean existBandwidth;
3717 guint8 Bandwidth;
3718 guint8 NrOfFrequencies;
3719 UTRAN_TDD_NeighbourCells_t CellParams[8];
3720 } UTRAN_TDD_Description_t;
3722 typedef struct
3724 guint8 Exist_Index_Start_3G;
3725 guint8 Index_Start_3G;
3726 guint8 Exist_Absolute_Index_Start_EMR;
3727 guint8 Absolute_Index_Start_EMR;
3728 guint8 Exist_UTRAN_FDD_Description;
3729 UTRAN_FDD_Description_t UTRAN_FDD_Description;
3730 guint8 Exist_UTRAN_TDD_Description;
3731 UTRAN_TDD_Description_t UTRAN_TDD_Description;
3732 guint8 Exist_CDMA2000_Description;
3733 CDMA2000_Description_t CDMA2000_Description;
3734 guint8 Exist_Removed3GCellDescription;
3735 Removed3GCellDescription_t Removed3GCellDescription;
3736 } NeighbourCellDescription3G_PMO_t;
3738 typedef struct
3740 guint8 Exist_Index_Start_3G;
3741 guint8 Index_Start_3G;
3742 guint8 Exist_Absolute_Index_Start_EMR;
3743 guint8 Absolute_Index_Start_EMR;
3744 guint8 Exist_UTRAN_FDD_Description;
3745 UTRAN_FDD_Description_t UTRAN_FDD_Description;
3746 guint8 Exist_UTRAN_TDD_Description;
3747 UTRAN_TDD_Description_t UTRAN_TDD_Description;
3748 guint8 Exist_Removed3GCellDescription;
3749 Removed3GCellDescription_t Removed3GCellDescription;
3750 } NeighbourCellDescription3G_PCCO_t;
3752 typedef struct
3754 guint8 UnionType;
3755 union
3757 BA_IND_t BA_IND;
3758 guint8 PSI3_CHANGE_MARK;
3759 } u;
3761 guint8 PMO_IND;
3763 guint8 REPORT_TYPE;
3764 guint8 REPORTING_RATE;
3765 guint8 INVALID_BSIC_REPORTING;
3767 gboolean Exist_NeighbourCellDescription3G;
3768 NeighbourCellDescription3G_PMO_t NeighbourCellDescription3G;
3770 gboolean Exist_GPRSReportPriority;
3771 GPRSReportPriority_t GPRSReportPriority;
3773 gboolean Exist_GPRSMeasurementParams;
3774 GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3775 gboolean Exist_GPRSMeasurementParams3G;
3776 ENH_GPRSMeasurementParams3G_PMO_t GPRSMeasurementParams3G;
3777 } ENH_Measurement_Parameters_PMO_t;
3779 typedef struct
3781 guint8 UnionType;
3782 union
3784 BA_IND_t BA_IND;
3785 guint8 PSI3_CHANGE_MARK;
3786 } u;
3788 guint8 PMO_IND;
3790 guint8 REPORT_TYPE;
3791 guint8 REPORTING_RATE;
3792 guint8 INVALID_BSIC_REPORTING;
3794 gboolean Exist_NeighbourCellDescription3G;
3795 NeighbourCellDescription3G_PCCO_t NeighbourCellDescription3G;
3797 gboolean Exist_GPRSReportPriority;
3798 GPRSReportPriority_t GPRSReportPriority;
3800 gboolean Exist_GPRSMeasurementParams;
3801 GPRSMeasurementParams_PMO_PCCO_t GPRSMeasurementParams;
3802 gboolean Exist_GPRSMeasurementParams3G;
3803 ENH_GPRSMeasurementParams3G_PCCO_t GPRSMeasurementParams3G;
3804 } ENH_Measurement_Parameters_PCCO_t;
3806 typedef struct
3808 guint8 UnionType;
3809 union
3811 Global_TFI_t Global_TFI;
3812 guint32 TLLI;
3813 } u;
3814 } PacketCellChangeOrderID_t;
3816 typedef struct
3818 guint8 CELL_BAR_QUALIFY_3;
3819 guint8 Exist_SI13_Alt_PBCCH_Location;
3820 SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
3821 } lu_ModeCellSelectionParameters_t;
3823 typedef struct
3825 guint8 Exist_lu_ModeCellSelectionParams;
3826 lu_ModeCellSelectionParameters_t lu_ModeCellSelectionParameters;
3827 } lu_ModeCellSelectionParams_t;
3829 typedef struct
3831 lu_ModeCellSelectionParams_t lu_ModeCellSelectionParameters;
3832 guint8 NR_OF_FREQUENCIES;
3833 lu_ModeCellSelectionParams_t lu_ModeCellSelectionParams[32];
3834 } lu_ModeNeighbourCellParams_t;
3836 typedef struct
3838 guint8 CELL_BAR_QUALIFY_3;
3839 guint8 SAME_RA_AS_SERVING_CELL;
3841 guint8 Exist_RXLEV_and_TXPWR;
3842 guint8 GPRS_RXLEV_ACCESS_MIN;
3843 guint8 GPRS_MS_TXPWR_MAX_CCH;
3845 guint8 Exist_OFFSET_and_TIME;
3846 guint8 GPRS_TEMPORARY_OFFSET;
3847 guint8 GPRS_PENALTY_TIME;
3849 guint8 Exist_GPRS_RESELECT_OFFSET;
3850 guint8 GPRS_RESELECT_OFFSET;
3852 guint8 Exist_HCS;
3853 HCS_t HCS;
3855 guint8 Exist_SI13_Alt_PBCCH_Location;
3856 SI13_PBCCH_Location_t SI13_Alt_PBCCH_Location;
3857 } lu_ModeOnlyCellSelection_t;
3859 typedef struct
3861 guint8 FREQ_DIFF_LENGTH;
3862 guint8 FREQUENCY_DIFF;
3863 guint8 BSIC;
3865 gboolean Exist_lu_ModeOnlyCellSelectionParams;
3866 lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelectionParams;
3867 } lu_ModeOnlyCellSelectionParamsWithFreqDiff_t;
3869 typedef struct
3871 guint16 START_FREQUENCY;
3872 guint8 BSIC;
3874 guint8 Exist_lu_ModeCellSelection;
3875 lu_ModeOnlyCellSelection_t lu_ModeOnlyCellSelection;
3877 guint8 NR_OF_FREQUENCIES;
3878 guint8 FREQ_DIFF_LENGTH;
3880 lu_ModeOnlyCellSelectionParamsWithFreqDiff_t lu_ModeOnlyCellSelectionParamsWithFreqDiff[32];
3881 } Add_lu_ModeOnlyFrequencyList_t;
3883 typedef struct
3885 guint8 Count_Add_lu_ModeOnlyFrequencyList;
3886 Add_lu_ModeOnlyFrequencyList_t Add_lu_ModeOnlyFrequencyList[32];
3887 } NC_lu_ModeOnlyCapableCellList_t;
3890 typedef struct
3892 guint8 NumberOfFrequencyIndexes;
3893 guint8 UTRAN_FREQUENCY_INDEX_a[18];
3895 gboolean existUTRAN_PRIORITY;
3896 guint8 UTRAN_PRIORITY;
3898 guint8 THRESH_UTRAN_high;
3900 gboolean existTHRESH_UTRAN_low;
3901 guint8 THRESH_UTRAN_low;
3903 gboolean existUTRAN_QRXLEVMIN;
3904 guint8 UTRAN_QRXLEVMIN;
3905 } RepeatedUTRAN_PriorityParameters_t;
3907 typedef struct
3909 gboolean existDEFAULT_UTRAN_Parameters;
3910 guint8 DEFAULT_UTRAN_PRIORITY;
3911 guint8 DEFAULT_THRESH_UTRAN;
3912 guint8 DEFAULT_UTRAN_QRXLEVMIN;
3914 guint8 NumberOfPriorityParameters;
3915 RepeatedUTRAN_PriorityParameters_t RepeatedUTRAN_PriorityParameters_a[8];
3916 } PriorityParametersDescription3G_PMO_t;
3918 typedef struct
3920 gboolean existEUTRAN_FDD_REPORTING_THRESHOLD_OFFSET;
3921 guint8 EUTRAN_FDD_REPORTING_THRESHOLD;
3922 gboolean existEUTRAN_FDD_REPORTING_THRESHOLD_2;
3923 guint8 EUTRAN_FDD_REPORTING_THRESHOLD_2;
3924 gboolean existEUTRAN_FDD_REPORTING_OFFSET;
3925 guint8 EUTRAN_FDD_REPORTING_OFFSET;
3927 gboolean existEUTRAN_TDD_REPORTING_THRESHOLD_OFFSET;
3928 guint8 EUTRAN_TDD_REPORTING_THRESHOLD;
3929 gboolean existEUTRAN_TDD_REPORTING_THRESHOLD_2;
3930 guint8 EUTRAN_TDD_REPORTING_THRESHOLD_2;
3931 gboolean existEUTRAN_TDD_REPORTING_OFFSET;
3932 guint8 EUTRAN_TDD_REPORTING_OFFSET;
3933 } EUTRAN_REPORTING_THRESHOLD_OFFSET_t;
3935 typedef struct
3937 guint8 Qsearch_P_EUTRAN;
3938 guint8 EUTRAN_REP_QUANT;
3939 guint8 EUTRAN_MULTIRAT_REPORTING;
3940 EUTRAN_REPORTING_THRESHOLD_OFFSET_t EUTRAN_REPORTING_THRESHOLD_OFFSET;
3941 } GPRS_EUTRAN_MeasurementParametersDescription_t;
3943 typedef struct
3945 guint16 EARFCN;
3946 gboolean existMeasurementBandwidth;
3947 guint8 MeasurementBandwidth;
3948 } RepeatedEUTRAN_Cells_t;
3950 typedef struct
3952 guint8 nbrOfEUTRAN_Cells;
3953 RepeatedEUTRAN_Cells_t EUTRAN_Cells_a[6];
3955 gboolean existEUTRAN_PRIORITY;
3956 guint8 EUTRAN_PRIORITY;
3958 guint8 THRESH_EUTRAN_high;
3960 gboolean existTHRESH_EUTRAN_low;
3961 guint8 THRESH_EUTRAN_low;
3963 gboolean existEUTRAN_QRXLEVMIN;
3964 guint8 EUTRAN_QRXLEVMIN;
3965 } RepeatedEUTRAN_NeighbourCells_t;
3967 typedef struct
3969 guint16 PCID;
3970 } PCID_t;
3972 typedef struct
3974 guint8 PCID_Pattern_length;
3975 guint8 PCID_Pattern;
3976 guint8 PCID_Pattern_sense;
3977 } PCID_Pattern_t;
3979 typedef struct
3981 guint8 NumberOfPCIDs;
3982 guint16 PCID_a[11];
3984 gboolean existPCID_BITMAP_GROUP;
3985 guint8 PCID_BITMAP_GROUP;
3987 guint8 NumberOfPCID_Patterns;
3988 PCID_Pattern_t PCID_Pattern_a[19];
3989 } PCID_Group_IE_t;
3991 typedef struct
3993 guint8 EUTRAN_FREQUENCY_INDEX;
3994 } EUTRAN_FREQUENCY_INDEX_t;
3996 typedef struct
3998 PCID_Group_IE_t NotAllowedCells;
3999 guint8 NumberOfFrequencyIndexes;
4000 EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4001 } RepeatedEUTRAN_NotAllowedCells_t;
4003 typedef struct
4005 guint8 NumberOfMappings;
4006 PCID_Group_IE_t PCID_ToTA_Mapping_a[14];
4008 guint8 NumberOfFrequencyIndexes;
4009 EUTRAN_FREQUENCY_INDEX_t EUTRAN_FREQUENCY_INDEX_a[28];
4010 } RepeatedEUTRAN_PCID_to_TA_mapping_t;
4012 typedef struct
4014 guint8 EUTRAN_CCN_ACTIVE;
4016 gboolean existGPRS_EUTRAN_MeasurementParametersDescription;
4017 GPRS_EUTRAN_MeasurementParametersDescription_t GPRS_EUTRAN_MeasurementParametersDescription;
4019 guint8 nbrOfRepeatedEUTRAN_NeighbourCellsStructs;
4020 RepeatedEUTRAN_NeighbourCells_t RepeatedEUTRAN_NeighbourCells_a[4];
4022 guint8 NumberOfNotAllowedCells;
4023 RepeatedEUTRAN_NotAllowedCells_t RepeatedEUTRAN_NotAllowedCells_a[14];
4025 guint8 NumberOfMappings;
4026 RepeatedEUTRAN_PCID_to_TA_mapping_t RepeatedEUTRAN_PCID_to_TA_mapping_a[19];
4027 } EUTRAN_ParametersDescription_PMO_t;
4029 typedef struct
4031 guint8 GERAN_PRIORITY;
4032 guint8 THRESH_Priority_Search;
4033 guint8 THRESH_GSM_low;
4034 guint8 H_PRIO;
4035 guint8 T_Reselection;
4036 } ServingCellPriorityParametersDescription_t;
4038 typedef struct
4040 gboolean existServingCellPriorityParametersDescription;
4041 ServingCellPriorityParametersDescription_t ServingCellPriorityParametersDescription;
4043 gboolean existPriorityParametersDescription3G_PMO;
4044 PriorityParametersDescription3G_PMO_t PriorityParametersDescription3G_PMO;
4046 gboolean existEUTRAN_ParametersDescription_PMO;
4047 EUTRAN_ParametersDescription_PMO_t EUTRAN_ParametersDescription_PMO;
4048 } PriorityAndEUTRAN_ParametersDescription_PMO_t;
4050 typedef struct
4052 guint8 PSC_Pattern_length;
4053 guint8 PSC_Pattern;
4054 gboolean PSC_Pattern_sense;
4055 } PSC_Pattern_t;
4057 typedef struct
4059 guint8 PSC_Count;
4060 guint16 PSC[32];
4061 guint8 PSC_Pattern_Count;
4062 PSC_Pattern_t PSC_Pattern[32];
4063 } PSC_Group_t;
4065 typedef struct
4067 PSC_Group_t CSG_PSC_SPLIT;
4068 guint8 Count;
4069 guint8 UTRAN_FREQUENCY_INDEX[32];
4070 } ThreeG_CSG_Description_Body_t;
4072 typedef struct
4074 guint8 Count;
4075 ThreeG_CSG_Description_Body_t ThreeG_CSG_Description_Body[32];
4076 } ThreeG_CSG_Description_t;
4078 typedef struct
4080 PSC_Group_t CSG_PCI_SPLIT;
4081 guint8 Count;
4082 guint8 EUTRAN_FREQUENCY_INDEX[32];
4083 } EUTRAN_CSG_Description_Body_t;
4085 typedef struct
4087 guint8 Count;
4088 EUTRAN_CSG_Description_Body_t EUTRAN_CSG_Description_Body[32];
4089 } EUTRAN_CSG_Description_t;
4091 typedef struct
4093 gboolean existMeasurement_Control_EUTRAN;
4094 gboolean Measurement_Control_EUTRAN;
4095 guint8 EUTRAN_FREQUENCY_INDEX_top;
4096 guint8 Count_EUTRAN_FREQUENCY_INDEX;
4097 guint8 EUTRAN_FREQUENCY_INDEX[32];
4099 gboolean existMeasurement_Control_UTRAN;
4100 gboolean Measurement_Control_UTRAN;
4101 guint8 UTRAN_FREQUENCY_INDEX_top;
4102 guint8 Count_UTRAN_FREQUENCY_INDEX;
4103 guint8 UTRAN_FREQUENCY_INDEX[32];
4104 } Meas_Ctrl_Param_Desp_t;
4106 typedef struct
4108 guint8 THRESH_EUTRAN_high_Q;
4109 gboolean existTHRESH_EUTRAN_low_Q;
4110 guint8 THRESH_EUTRAN_low_Q;
4111 gboolean existEUTRAN_QQUALMIN;
4112 guint8 EUTRAN_QQUALMIN;
4113 gboolean existEUTRAN_RSRPmin;
4114 guint8 EUTRAN_RSRPmin;
4115 } Reselection_Based_On_RSRQ_t;
4117 typedef struct
4119 guint8 Count_EUTRAN_FREQUENCY_INDEX;
4120 guint8 EUTRAN_FREQUENCY_INDEX[32];
4121 guint8 UnionType;
4122 union
4124 guint8 EUTRAN_Qmin;
4125 Reselection_Based_On_RSRQ_t Reselection_Based_On_RSRQ;
4126 } u;
4127 } Rept_EUTRAN_Enh_Cell_Resel_Param_t;
4129 typedef struct
4131 guint8 Count;
4132 Rept_EUTRAN_Enh_Cell_Resel_Param_t Repeated_EUTRAN_Enhanced_Cell_Reselection_Parameters[32];
4133 } Enh_Cell_Reselect_Param_Desp_t;
4135 typedef struct
4137 gboolean existUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4138 guint8 UTRAN_CSG_FDD_REPORTING_THRESHOLD;
4139 guint8 UTRAN_CSG_FDD_REPORTING_THRESHOLD_2;
4140 gboolean existUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4141 guint8 UTRAN_CSG_TDD_REPORTING_THRESHOLD;
4142 } UTRAN_CSG_Cells_Reporting_Desp_t;
4144 typedef struct
4146 gboolean existEUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4147 guint8 EUTRAN_CSG_FDD_REPORTING_THRESHOLD;
4148 guint8 EUTRAN_CSG_FDD_REPORTING_THRESHOLD_2;
4149 gboolean existEUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4150 guint8 EUTRAN_CSG_TDD_REPORTING_THRESHOLD;
4151 guint8 EUTRAN_CSG_TDD_REPORTING_THRESHOLD_2;
4152 } EUTRAN_CSG_Cells_Reporting_Desp_t;
4154 typedef struct
4156 gboolean existUTRAN_CSG_Cells_Reporting_Description;
4157 UTRAN_CSG_Cells_Reporting_Desp_t UTRAN_CSG_Cells_Reporting_Description;
4158 gboolean existEUTRAN_CSG_Cells_Reporting_Description;
4159 EUTRAN_CSG_Cells_Reporting_Desp_t EUTRAN_CSG_Cells_Reporting_Description;
4160 } CSG_Cells_Reporting_Desp_t;
4162 typedef struct
4164 gboolean existEnhanced_Cell_Reselection_Parameters_Description;
4165 Enh_Cell_Reselect_Param_Desp_t Enhanced_Cell_Reselection_Parameters_Description;
4167 gboolean existCSG_Cells_Reporting_Description;
4168 CSG_Cells_Reporting_Desp_t CSG_Cells_Reporting_Description;
4169 } PMO_AdditionsR9_t;
4171 typedef struct
4173 guint8 dummy;
4174 } Delete_All_Stored_Individual_Priorities_t;
4176 typedef struct
4178 guint8 Count;
4179 guint16 FDD_ARFCN[32];
4180 } Individual_UTRAN_Priority_FDD_t;
4182 typedef struct
4184 guint8 Count;
4185 guint16 TDD_ARFCN[32];
4186 } Individual_UTRAN_Priority_TDD_t;
4188 typedef struct
4190 guint8 UnionType;
4191 union
4193 Individual_UTRAN_Priority_FDD_t Individual_UTRAN_Priority_FDD;
4194 Individual_UTRAN_Priority_TDD_t Individual_UTRAN_Priority_TDD;
4195 } u;
4196 guint8 UTRAN_PRIORITY;
4197 } Repeated_Individual_UTRAN_Priority_Parameters_t;
4199 typedef struct
4201 guint8 Exist_DEFAULT_UTRAN_PRIORITY;
4202 guint8 DEFAULT_UTRAN_PRIORITY;
4203 guint8 Repeated_Individual_UTRAN_Priority_Parameters_Count;
4204 Repeated_Individual_UTRAN_Priority_Parameters_t Repeated_Individual_UTRAN_Priority_Parameters[32];
4205 } ThreeG_Individual_Priority_Parameters_Description_t;
4207 typedef struct
4209 guint8 Count;
4210 guint16 EARFCN[32];
4211 guint8 EUTRAN_PRIORITY;
4212 } Repeated_Individual_EUTRAN_Priority_Parameters_t;
4214 typedef struct
4216 guint8 Exist_DEFAULT_EUTRAN_PRIORITY;
4217 guint8 DEFAULT_EUTRAN_PRIORITY;
4218 guint8 Count;
4219 Repeated_Individual_EUTRAN_Priority_Parameters_t Repeated_Individual_EUTRAN_Priority_Parameters[32];
4220 } EUTRAN_Individual_Priority_Parameters_Description_t;
4222 typedef struct
4224 guint8 GERAN_PRIORITY;
4225 guint8 Exist_3G_Individual_Priority_Parameters_Description;
4226 ThreeG_Individual_Priority_Parameters_Description_t ThreeG_Individual_Priority_Parameters_Description;
4227 guint8 Exist_EUTRAN_Individual_Priority_Parameters_Description;
4228 EUTRAN_Individual_Priority_Parameters_Description_t EUTRAN_Individual_Priority_Parameters_Description;
4229 guint8 Exist_T3230_timeout_value;
4230 guint8 T3230_timeout_value;
4231 } Provide_Individual_Priorities_t;
4233 typedef struct
4235 guint8 UnionType;
4236 union
4238 Delete_All_Stored_Individual_Priorities_t Delete_All_Stored_Individual_Priorities;
4239 Provide_Individual_Priorities_t Provide_Individual_Priorities;
4240 } u;
4241 } Individual_Priorities_t;
4243 typedef struct
4245 gboolean existBA_IND_3G_PMO_IND;
4246 guint8 BA_IND_3G;
4247 guint8 PMO_IND;
4249 gboolean existPriorityAndEUTRAN_ParametersDescription_PMO;
4250 PriorityAndEUTRAN_ParametersDescription_PMO_t PriorityAndEUTRAN_ParametersDescription_PMO;
4252 gboolean existIndividualPriorities_PMO;
4253 Individual_Priorities_t IndividualPriorities_PMO;
4255 gboolean existThreeG_CSG_Description;
4256 ThreeG_CSG_Description_t ThreeG_CSG_Description_PMO;
4258 gboolean existEUTRAN_CSG_Description;
4259 EUTRAN_CSG_Description_t EUTRAN_CSG_Description_PMO;
4261 gboolean existMeasurement_Control_Parameters_Description;
4262 Meas_Ctrl_Param_Desp_t Measurement_Control_Parameters_Description_PMO;
4264 gboolean existAdditionsR9;
4265 PMO_AdditionsR9_t AdditionsR9;
4266 } PMO_AdditionsR8_t;
4268 typedef struct
4270 gboolean existREPORTING_OFFSET_THRESHOLD_700;
4271 guint8 REPORTING_OFFSET_700;
4272 guint8 REPORTING_THRESHOLD_700;
4274 gboolean existREPORTING_OFFSET_THRESHOLD_810;
4275 guint8 REPORTING_OFFSET_810;
4276 guint8 REPORTING_THRESHOLD_810;
4278 guint8 existAdditionsR8;
4279 PMO_AdditionsR8_t additionsR8;
4280 } PMO_AdditionsR7_t;
4282 typedef struct
4284 guint8 CCN_ACTIVE_3G;
4285 guint8 existAdditionsR7;
4286 PMO_AdditionsR7_t additionsR7;
4287 } PMO_AdditionsR6_t;
4289 typedef struct
4291 guint8 CCN_ACTIVE_3G;
4292 } PCCO_AdditionsR6_t;
4294 typedef struct
4296 guint8 existGRNTI_Extension;
4297 guint8 GRNTI;
4298 guint8 exist_lu_ModeNeighbourCellParams;
4299 guint8 count_lu_ModeNeighbourCellParams;
4300 lu_ModeNeighbourCellParams_t lu_ModeNeighbourCellParams[32];
4301 guint8 existNC_lu_ModeOnlyCapableCellList;
4302 NC_lu_ModeOnlyCapableCellList_t NC_lu_ModeOnlyCapableCellList;
4303 guint8 existGPRS_AdditionalMeasurementParams3G;
4304 GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
4305 guint8 existAdditionsR6;
4306 PMO_AdditionsR6_t additionsR6;
4307 } PMO_AdditionsR5_t;
4309 typedef struct
4311 guint8 existGRNTI_Extension;
4312 guint8 GRNTI;
4313 guint8 exist_lu_ModeNeighbourCellParams;
4314 guint8 count_lu_ModeNeighbourCellParams;
4315 lu_ModeNeighbourCellParams_t lu_ModeNeighbourCellParams[32];
4316 guint8 existNC_lu_ModeOnlyCapableCellList;
4317 NC_lu_ModeOnlyCapableCellList_t NC_lu_ModeOnlyCapableCellList;
4318 guint8 existGPRS_AdditionalMeasurementParams3G;
4319 GPRS_AdditionalMeasurementParams3G_t GPRS_AdditionalMeasurementParams3G;
4320 guint8 existAdditionsR6;
4321 PCCO_AdditionsR6_t additionsR6;
4322 } PCCO_AdditionsR5_t;
4324 typedef struct
4326 guint8 CCN_ACTIVE;
4327 guint8 Exist_CCN_Support_Description_ID;
4328 CCN_Support_Description_t CCN_Support_Description;
4329 guint8 Exist_AdditionsR5;
4330 PMO_AdditionsR5_t AdditionsR5;
4331 } PMO_AdditionsR4_t;
4333 typedef struct
4335 guint8 CCN_ACTIVE;
4336 guint8 Exist_Container_ID;
4337 guint8 CONTAINER_ID;
4338 guint8 Exist_CCN_Support_Description_ID;
4339 CCN_Support_Description_t CCN_Support_Description;
4340 guint8 Exist_AdditionsR5;
4341 PCCO_AdditionsR5_t AdditionsR5;
4342 } PCCO_AdditionsR4_t;
4344 typedef struct
4346 ENH_Measurement_Parameters_PCCO_t ENH_Measurement_Parameters;
4347 guint8 Exist_AdditionsR4;
4348 PCCO_AdditionsR4_t AdditionsR4;
4349 } PCCO_AdditionsR99_t;
4351 typedef struct
4353 guint8 Exist_ENH_Measurement_Parameters;
4354 ENH_Measurement_Parameters_PMO_t ENH_Measurement_Parameters;
4355 guint8 Exist_AdditionsR4;
4356 PMO_AdditionsR4_t AdditionsR4;
4357 } PMO_AdditionsR99_t;
4359 typedef struct
4361 guint8 Exist_LSA_Parameters;
4362 LSA_Parameters_t LSA_Parameters;
4364 guint8 Exist_AdditionsR99;
4365 PMO_AdditionsR99_t AdditionsR99;
4366 } PMO_AdditionsR98_t;
4368 typedef struct
4370 guint8 Exist_LSA_Parameters;
4371 LSA_Parameters_t LSA_Parameters;
4373 guint8 Exist_AdditionsR99;
4374 PCCO_AdditionsR99_t AdditionsR99;
4375 } PCCO_AdditionsR98_t;
4377 typedef struct
4379 guint8 IMMEDIATE_REL;
4380 guint16 ARFCN;
4381 guint8 BSIC;
4382 NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4384 guint8 Exist_AdditionsR98;
4385 PCCO_AdditionsR98_t AdditionsR98;
4386 } Target_Cell_GSM_t;
4388 typedef struct
4390 guint8 Exist_EUTRAN_Target_Cell;
4391 EUTRAN_Target_Cell_t EUTRAN_Target_Cell;
4392 guint8 Exist_Individual_Priorities;
4393 Individual_Priorities_t Individual_Priorities;
4394 } Target_Cell_3G_AdditionsR8_t;
4396 typedef struct
4398 guint8 Exist_G_RNTI_Extention;
4399 guint8 G_RNTI_Extention;
4400 guint8 Exist_AdditionsR8;
4401 Target_Cell_3G_AdditionsR8_t AdditionsR8;
4402 } Target_Cell_3G_AdditionsR5_t;
4404 typedef struct
4406 /* 00 -- Message escape */
4407 guint8 IMMEDIATE_REL;
4408 guint8 Exist_FDD_Description;
4409 FDD_Target_Cell_t FDD_Target_Cell;
4410 guint8 Exist_TDD_Description;
4411 TDD_Target_Cell_t TDD_Target_Cell;
4412 guint8 Exist_AdditionsR5;
4413 Target_Cell_3G_AdditionsR5_t AdditionsR5;
4414 } Target_Cell_3G_t;
4416 #if 0
4417 #define TARGET_CELL_GSM 0
4418 #define TARGET_CELL_3G 1
4419 #endif
4421 typedef struct
4423 guint8 MESSAGE_TYPE;
4424 guint8 PAGE_MODE;
4426 PacketCellChangeOrderID_t ID;
4428 guint8 UnionType;
4429 union
4431 Target_Cell_GSM_t Target_Cell_GSM;
4432 Target_Cell_3G_t Target_Cell_3G;
4433 } u;
4435 } Packet_Cell_Change_Order_t;
4437 /* < Packet Cell Change Continue message contents > */
4438 typedef struct
4440 guint8 MESSAGE_TYPE;
4441 guint8 PAGE_MODE;
4443 Global_TFI_t Global_TFI;
4444 guint8 Exist_ID;
4445 guint16 ARFCN;
4446 guint8 BSIC;
4447 guint8 CONTAINER_ID;
4448 } Packet_Cell_Change_Continue_t;
4451 /* < Packet Neighbour Cell Data message contents > */
4452 typedef struct
4454 guint16 ARFCN;
4455 guint8 BSIC;
4456 guint8 CONTAINER[17]; /* PD (3 bits) + CD_LENGTH (5 bits) + 16 bytes of CONTAINER_DATA (max!) */
4457 } PNCD_Container_With_ID_t;
4459 typedef struct
4461 guint8 CONTAINER[19]; /* PD (3 bits) + CD_LENGTH (5 bits) + 18 bytes of CONTAINER_DATA (max!) */
4462 } PNCD_Container_Without_ID_t;
4464 typedef struct
4466 guint8 UnionType;
4467 union
4469 PNCD_Container_Without_ID_t PNCD_Container_Without_ID;
4470 PNCD_Container_With_ID_t PNCD_Container_With_ID;
4471 } u;
4472 } PNCDContainer_t;
4474 typedef struct
4476 guint8 MESSAGE_TYPE;
4477 guint8 PAGE_MODE;
4478 /* Fixed 0 */
4479 Global_TFI_t Global_TFI;
4480 guint8 CONTAINER_ID;
4481 guint8 spare;
4482 guint8 CONTAINER_INDEX;
4484 PNCDContainer_t Container;
4485 } Packet_Neighbour_Cell_Data_t;
4487 /* < Packet Serving Cell Data message contents > */
4488 typedef struct
4490 guint8 MESSAGE_TYPE;
4491 guint8 PAGE_MODE;
4492 /* Fixed 0 */
4493 Global_TFI_t Global_TFI;
4494 guint8 spare;
4495 guint8 CONTAINER_INDEX;
4496 guint8 CONTAINER[19]; /* PD (3 bits) + CD_LENGTH (5 bits) + 18 bytes of CONTAINER_DATA (max!) */
4497 } Packet_Serving_Cell_Data_t;
4499 /* < Packet Measurement Order message contents > */
4500 typedef struct
4502 guint16 START_FREQUENCY;
4503 guint8 NR_OF_FREQUENCIES;
4504 guint8 FREQ_DIFF_LENGTH;
4506 guint8 Count_FREQUENCY_DIFF;
4507 guint8 FREQUENCY_DIFF[31];/* bit (FREQ_DIFF_LENGTH) * NR_OF_FREQUENCIES --> MAX is bit(7) * 31 */
4508 } EXT_Frequency_List_t;
4510 typedef struct
4512 guint8 MESSAGE_TYPE;
4513 guint8 PAGE_MODE;
4515 PacketDownlinkID_t ID; /* use the PDA ID as it is the same as as the PMO */
4517 guint8 PMO_INDEX;
4518 guint8 PMO_COUNT;
4520 guint8 Exist_NC_Measurement_Parameters;
4521 NC_Measurement_Parameters_with_Frequency_List_t NC_Measurement_Parameters;
4523 guint8 Exist_EXT_Measurement_Parameters;
4525 guint8 Exist_AdditionsR98;
4526 PMO_AdditionsR98_t AdditionsR98;
4527 } Packet_Measurement_Order_t;
4529 /* Enhanced measurement report */
4531 typedef struct
4533 guint8 RXLEV_SERVING_CELL;
4534 } ServingCellData_t;
4536 typedef struct
4538 guint8 BCCH_FREQ_NCELL;
4539 guint8 BSIC;
4540 guint8 RXLEV_NCELL;
4541 } Repeated_Invalid_BSIC_Info_t;
4543 typedef struct
4545 gboolean Exist_REPORTING_QUANTITY;
4546 guint8 REPORTING_QUANTITY;
4547 } REPORTING_QUANTITY_t;
4549 typedef struct
4551 guint8 NC_MODE;
4552 guint8 UnionType;
4553 union
4555 BA_USED_t BA_USED;
4556 guint8 PSI3_CHANGE_MARK;
4557 } u;
4558 guint8 PMO_USED;
4559 guint8 SCALE;
4560 guint8 Exist_ServingCellData;
4561 ServingCellData_t ServingCellData;
4562 guint8 Count_Repeated_Invalid_BSIC_Info;
4563 Repeated_Invalid_BSIC_Info_t Repeated_Invalid_BSIC_Info[32];
4565 gboolean Exist_Repeated_REPORTING_QUANTITY;
4566 guint8 Count_Repeated_Reporting_Quantity;
4567 REPORTING_QUANTITY_t Repeated_REPORTING_QUANTITY[96];
4568 } NC_MeasurementReport_t;
4570 /* Packet Handover PHO ----------------- */
4572 typedef struct
4574 guint8 UnionType;
4575 union
4577 guint8 MS_TimeslotAllocation;
4578 Power_Control_Parameters_t Power_Control_Parameters;
4579 } u;
4580 } GlobalTimeslotDescription_t;
4582 typedef struct
4584 guint8 TimeslotAllocation;
4585 guint8 PFI;
4586 guint8 RLC_Mode;
4587 guint8 TFI_Assignment;
4588 guint8 ControlACK;
4589 guint8 Exist_EGPRS_WindowSize;
4590 guint8 EGPRS_WindowSize;
4591 } PHO_DownlinkAssignment_t;
4593 typedef struct
4595 gboolean Exist_USF;
4596 guint8 USF;
4597 } PHO_USF_1_7_t;
4599 typedef struct
4601 guint8 USF_0;
4602 PHO_USF_1_7_t USF_1_7[7];
4603 guint8 NBR_OfAllocatedTimeslots;
4604 } USF_AllocationArray_t;
4606 typedef struct
4608 guint8 PFI;
4609 guint8 RLC_Mode;
4610 guint8 TFI_Assignment;
4611 guint8 Exist_ChannelCodingCommand;
4612 guint8 ChannelCodingCommand;
4613 guint8 Exist_EGPRS_ChannelCodingCommand;
4614 guint8 EGPRS_ChannelCodingCommand;
4615 guint8 Exist_EGPRS_WindowSize;
4616 guint8 EGPRS_WindowSize;
4617 guint8 USF_Granularity;
4618 guint8 Exist_TBF_TimeslotAllocation;
4619 guint8 TBF_TimeslotAllocation;
4620 guint8 UnionType;
4621 union
4623 guint8 USF_SingleAllocation;
4624 USF_AllocationArray_t USF_AllocationArray;
4625 } u;
4626 } PHO_UplinkAssignment_t;
4628 typedef struct
4630 GlobalTimeslotDescription_t GlobalTimeslotDescription;
4631 guint8 Exist_PHO_UA;
4632 PHO_UplinkAssignment_t PHO_UA;
4633 } GlobalTimeslotDescription_UA_t;
4635 typedef struct
4637 guint8 Exist_ChannelCodingCommand;
4638 guint8 ChannelCodingCommand;
4639 guint8 Exist_GlobalTimeslotDescription_UA;
4640 GlobalTimeslotDescription_UA_t GTD_UA;
4641 guint8 Exist_DownlinkAssignment;
4642 PHO_DownlinkAssignment_t DownlinkAssignment;
4643 } PHO_GPRS_t;
4646 typedef struct
4648 guint8 Exist_EGPRS_WindowSize;
4649 guint8 EGPRS_WindowSize;
4650 guint8 LinkQualityMeasurementMode;
4651 guint8 Exist_BEP_Period2;
4652 guint8 BEP_Period2;
4653 } EGPRS_Description_t;
4655 typedef struct
4657 guint8 Exist_EGPRS_Description;
4658 EGPRS_Description_t EGPRS_Description;
4659 guint8 Exist_DownlinkAssignment;
4660 PHO_DownlinkAssignment_t DownlinkAssignment;
4661 } DownlinkTBF_t;
4663 typedef struct
4665 guint8 Exist_EGPRS_WindowSize;
4666 guint8 EGPRS_WindowSize;
4667 guint8 Exist_EGPRS_ChannelCodingCommand;
4668 guint8 EGPRS_ChannelCodingCommand;
4669 guint8 Exist_BEP_Period2;
4670 guint8 BEP_Period2;
4671 guint8 Exist_GlobalTimeslotDescription_UA;
4672 GlobalTimeslotDescription_UA_t GTD_UA;
4673 guint8 Exist_DownlinkTBF;
4674 DownlinkTBF_t DownlinkTBF;
4675 } PHO_EGPRS_t;
4677 typedef struct
4679 Global_Packet_Timing_Advance_t GlobalPacketTimingAdvance;
4680 guint8 Exist_PacketExtendedTimingAdvance;
4681 guint8 PacketExtendedTimingAdvance;
4682 } PHO_TimingAdvance_t;
4684 typedef struct
4686 guint8 NAS_ContainerLength;
4687 guint8 NAS_Container[MAX_NAS_CONTAINER_LENGTH];
4688 } NAS_Container_t;
4690 typedef struct
4692 guint8 RRC_ContainerLength;
4693 guint8 RRC_Container[MAX_RRC_CONTAINER_LENGTH];
4694 } PS_HandoverTo_UTRAN_Payload_t;
4697 typedef struct
4699 guint8 Exist_HandoverReference;
4700 guint8 HandoverReference;
4701 guint8 ARFCN;
4702 guint8 SI;
4703 guint8 NCI;
4704 guint8 BSIC;
4705 guint8 Exist_CCN_Active;
4706 guint8 CCN_Active;
4707 guint8 Exist_CCN_Active_3G;
4708 guint8 CCN_Active_3G;
4709 guint8 Exist_CCN_Support_Description;
4710 CCN_Support_Description_t CCN_Support_Description;
4711 Frequency_Parameters_t Frequency_Parameters;
4712 guint8 NetworkControlOrder;
4713 guint8 Exist_PHO_TimingAdvance;
4714 PHO_TimingAdvance_t PHO_TimingAdvance;
4715 guint8 Extended_Dynamic_Allocation;
4716 guint8 RLC_Reset;
4717 guint8 Exist_PO_PR;
4718 guint8 PO;
4719 guint8 PR_Mode;
4720 guint8 Exist_UplinkControlTimeslot;
4721 guint8 UplinkControlTimeslot;
4722 guint8 UnionType;
4723 union
4725 PHO_GPRS_t PHO_GPRS_Mode;
4726 PHO_EGPRS_t PHO_EGPRS_Mode;
4727 } u;
4728 } PHO_RadioResources_t;
4730 typedef struct
4732 PHO_RadioResources_t PHO_RadioResources;
4733 guint8 Exist_NAS_Container;
4734 NAS_Container_t NAS_Container;
4735 } PS_HandoverTo_A_GB_ModePayload_t;
4737 typedef struct
4739 guint8 MessageType;
4740 guint8 PageMode;
4741 Global_TFI_t Global_TFI;
4742 guint8 ContainerID;
4743 guint8 UnionType;
4744 union
4746 PS_HandoverTo_A_GB_ModePayload_t PS_HandoverTo_A_GB_ModePayload;
4747 PS_HandoverTo_UTRAN_Payload_t PS_HandoverTo_UTRAN_Payload;
4748 } u;
4749 } Packet_Handover_Command_t;
4751 /* End Packet Handover */
4753 /* Packet Physical Information ----------------- */
4755 typedef struct
4757 guint8 MessageType;
4758 guint8 PageMode;
4759 Global_TFI_t Global_TFI;
4760 guint8 TimingAdvance;
4761 } Packet_PhysicalInformation_t;
4763 /* End Packet Physical Information */
4767 /* ADDITIONAL MS RADIO ACCESS CAPABILITIES -----------------*/
4768 typedef struct
4770 guint8 UnionType;
4771 union
4773 Global_TFI_t Global_TFI;
4774 guint32 TLLI;
4775 } u;
4776 } AdditionalMsRadAccessCapID_t;
4779 typedef struct
4781 guint8 MESSAGE_TYPE;
4782 guint8 PayloadType;
4783 guint8 spare;
4784 guint8 R;
4786 AdditionalMsRadAccessCapID_t ID;
4787 MS_Radio_Access_capability_t MS_Radio_Access_capability;
4788 } Additional_MS_Rad_Access_Cap_t;
4790 /* End ADDITIONAL MS RADIO ACCESS CAPABILITIES */
4793 /* Packet Pause -----------------*/
4795 typedef struct
4797 guint8 MESSAGE_TYPE;
4799 guint32 TLLI;
4800 guint8 RAI[48/8];
4801 } Packet_Pause_t;
4803 /* End Packet Pause */
4806 /* < Payload Type Data MAC Header content > */
4807 typedef struct
4809 guint8 Payload_Type;
4810 guint8 Countdown_Value;
4811 guint8 SI;
4812 guint8 R;
4813 } UL_Data_Mac_Header_t;
4815 typedef struct
4817 UL_Data_Mac_Header_t UL_Data_Mac_Header;
4818 guint8 Spare;
4819 guint8 PI;
4820 guint8 TFI;
4821 guint8 TI;
4822 guint8 BSN;
4823 guint8 E;
4824 } UL_Data_Block_GPRS_t;
4826 typedef struct
4828 guint8 MESSAGE_TYPE;
4829 guint8 CTRL_ACK;
4830 }UL_Packet_Control_Ack_11_t;
4832 typedef struct
4834 guint8 MESSAGE_TYPE;
4835 guint8 TN_RRBP;
4836 guint8 CTRL_ACK;
4837 }UL_Packet_Control_Ack_TN_RRBP_11_t;
4839 typedef struct
4841 guint8 MESSAGE_TYPE;
4842 guint8 CTRL_ACK;
4843 }UL_Packet_Control_Ack_8_t;
4845 typedef struct
4847 guint8 MESSAGE_TYPE;
4848 guint8 TN_RRBP;
4849 guint8 CTRL_ACK;
4850 }UL_Packet_Control_Ack_TN_RRBP_8_t;
4852 typedef struct
4854 guint8 Payload_Type;
4855 guint8 RRBP;
4856 guint8 S_P;
4857 guint8 USF;
4858 } DL_Data_Mac_Header_t;
4860 typedef struct
4862 DL_Data_Mac_Header_t DL_Data_Mac_Header;
4863 guint8 Power_Reduction;
4864 guint8 TFI;
4865 guint8 FBI;
4866 guint8 BSN;
4867 guint8 E;
4868 } DL_Data_Block_GPRS_t;
4870 typedef struct
4872 guint8 TFI;
4873 guint8 RRBP;
4874 guint8 ES_P;
4875 guint8 USF;
4876 guint16 BSN1;
4877 guint16 BSN2_offset;
4878 guint8 Power_Reduction;
4879 guint8 SPB;
4880 guint8 CPS;
4881 guint8 PI;
4882 } DL_Data_Block_EGPRS_Header_t;
4884 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type1_t;
4885 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type2_t;
4886 typedef DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header_Type3_t;
4888 typedef struct
4890 guint8 TFI;
4891 guint8 Countdown_Value;
4892 guint8 SI;
4893 guint8 R;
4894 guint16 BSN1;
4895 guint16 BSN2_offset;
4896 guint8 PI;
4897 guint8 RSB;
4898 guint8 SPB;
4899 guint8 CPS;
4900 guint8 SPARE1;
4901 guint8 SPARE2;
4902 guint8 dummy;
4903 } UL_Data_Block_EGPRS_Header_t;
4905 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type1_t;
4906 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type2_t;
4907 typedef UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header_Type3_t;
4910 < NC Measurement Parameters struct > ::=
4911 < NETWORK_CONTROL_ORDER : bit (2) >
4912 { 0 | 1 < NC_ NON_DRX_PERIOD : bit (3) >
4913 < NC_REPORTING_PERIOD_I : bit (3) >
4914 < NC_REPORTING_PERIOD_T : bit (3) > } ;
4915 < Cell Selection struct > ::=
4916 < EXC_ACC : bit >
4917 < CELL_BAR_ACCESS_2 : bit (1) >
4918 < SAME_RA_AS_SERVING_CELL : bit (1) >
4919 { 0 | 1 < GPRS_RXLEV_ACCESS_MIN : bit (6) >
4920 < GPRS_MS_TXPWR_MAX_CCH : bit (5) > }
4921 { 0 | 1 < GPRS_TEMPORARY_OFFSET : bit (3) >
4922 < GPRS_PENALTY_TIME : bit (5) > }
4923 Table 25 (concluded): PACKET CELL CHANGE ORDER message content
4924 { 0 | 1 < GPRS_RESELECT_OFFSET : bit (5) > }
4925 { 0 | 1 < HCS params : < HCS struct > > }
4926 { 0 | 1 < SI13_PBCCH_LOCATION : < SI13_PBCCH_LOCATION struct > > } ;
4928 < SI13_PBCCH_LOCATION struct > ::=
4929 { 0 < SI13_LOCATION : bit (1) >
4930 | 1 < PBCCH_LOCATION : bit (2) >
4931 < PSI1_REPEAT_PERIOD : bit (4) > } ;
4933 < HCS struct > ::=
4934 < GPRS_PRIORITY_CLASS : bit (3) >
4935 < GPRS_HCS_THR : bit (5) > ;
4938 /* < Downlink RLC/MAC control message > */
4939 #define MT_PACKET_CELL_CHANGE_ORDER 0x01
4940 #define MT_PACKET_DOWNLINK_ASSIGNMENT 0x02
4941 #define MT_PACKET_MEASUREMENT_ORDER 0x03
4942 #define MT_PACKET_POLLING_REQ 0x04
4943 #define MT_PACKET_POWER_CONTROL_TIMING_ADVANCE 0x05
4944 #define MT_PACKET_QUEUEING_NOTIFICATION 0x06
4945 #define MT_PACKET_TIMESLOT_RECONFIGURE 0x07
4946 #define MT_PACKET_TBF_RELEASE 0x08
4947 #define MT_PACKET_UPLINK_ACK_NACK 0x09
4948 #define MT_PACKET_UPLINK_ASSIGNMENT 0x0A
4949 #define MT_PACKET_CELL_CHANGE_CONTINUE 0x0B
4950 #define MT_PACKET_NEIGHBOUR_CELL_DATA 0x0C
4951 #define MT_PACKET_SERVING_CELL_DATA 0x0D
4952 #define MT_PACKET_HANDOVER_COMMAND 0x15
4953 #define MT_PACKET_PHYSICAL_INFORMATION 0x16
4954 #define MT_PACKET_ACCESS_REJECT 0x21
4955 #define MT_PACKET_PAGING_REQUEST 0x22
4956 #define MT_PACKET_PDCH_RELEASE 0x23
4957 #define MT_PACKET_PRACH_PARAMETERS 0x24
4958 #define MT_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK 0x25
4959 #define MT_PACKET_SYSTEM_INFO_6 0x30
4960 #define MT_PACKET_SYSTEM_INFO_1 0x31
4961 #define MT_PACKET_SYSTEM_INFO_2 0x32
4962 #define MT_PACKET_SYSTEM_INFO_3 0x33
4963 #define MT_PACKET_SYSTEM_INFO_3_BIS 0x34
4964 #define MT_PACKET_SYSTEM_INFO_4 0x35
4965 #define MT_PACKET_SYSTEM_INFO_5 0x36
4966 #define MT_PACKET_SYSTEM_INFO_13 0x37
4967 #define MT_PACKET_SYSTEM_INFO_7 0x38
4968 #define MT_PACKET_SYSTEM_INFO_8 0x39
4969 #define MT_PACKET_SYSTEM_INFO_14 0x3A
4970 #define MT_PACKET_SYSTEM_INFO_3_TER 0x3C
4971 #define MT_PACKET_SYSTEM_INFO_3_QUATER 0x3D
4972 #define MT_PACKET_SYSTEM_INFO_15 0x3E
4974 /* < Uplink RLC/MAC control message > */
4975 #define MT_PACKET_CELL_CHANGE_FAILURE 0x00
4976 #define MT_PACKET_CONTROL_ACK 0x01
4977 #define MT_PACKET_DOWNLINK_ACK_NACK 0x02
4978 #define MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK 0x03
4979 #define MT_PACKET_MEASUREMENT_REPORT 0x04
4980 #define MT_PACKET_RESOURCE_REQUEST 0x05
4981 #define MT_PACKET_MOBILE_TBF_STATUS 0x06
4982 #define MT_PACKET_PSI_STATUS 0x07
4983 #define MT_EGPRS_PACKET_DOWNLINK_ACK_NACK 0x08
4984 #define MT_PACKET_PAUSE 0x09
4985 #define MT_PACKET_ENHANCED_MEASUREMENT_REPORT 0x0A
4986 #define MT_ADDITIONAL_MS_RAC 0x0B
4987 #define MT_PACKET_CELL_CHANGE_NOTIFICATION 0x0C
4988 #define MT_PACKET_SI_STATUS 0x0D
4989 #define MT_ENHANCED_MEASUREMENT_REPORT 0x04
4991 typedef enum
4993 RLCMAC_PRACH = 0x20,
4994 RLCMAC_CS1 = 0x21,
4995 RLCMAC_CS2 = 0x22,
4996 RLCMAC_CS3 = 0x23,
4997 RLCMAC_CS4 = 0x24,
4998 RLCMAC_HDR_TYPE_1 = 0x31,
4999 RLCMAC_HDR_TYPE_2 = 0x32,
5000 RLCMAC_HDR_TYPE_3 = 0x33,
5001 RLCMAC_HDR_TYPE_4 = 0x34,
5002 RLCMAC_HDR_TYPE_5 = 0x35,
5003 RLCMAC_HDR_TYPE_6 = 0x36,
5004 RLCMAC_HDR_TYPE_7 = 0x37,
5005 RLCMAC_HDR_TYPE_8 = 0x38,
5006 RLCMAC_HDR_TYPE_9 = 0x39,
5007 RLCMAC_HDR_TYPE_10 = 0x3a
5008 }RLCMAC_block_format_t;
5010 /* < Downlink RLC/MAC control message > */
5011 typedef struct
5013 union
5015 guint8 MESSAGE_TYPE;
5016 DL_Data_Block_GPRS_t DL_Data_Block_GPRS;
5017 DL_Data_Block_EGPRS_Header_t DL_Data_Block_EGPRS_Header;
5018 Packet_Access_Reject_t Packet_Access_Reject;
5019 Packet_Cell_Change_Order_t Packet_Cell_Change_Order;
5020 Packet_Cell_Change_Continue_t Packet_Cell_Change_Continue;
5021 Packet_Downlink_Assignment_t Packet_Downlink_Assignment;
5022 Packet_Measurement_Order_t Packet_Measurement_Order;
5023 Packet_Neighbour_Cell_Data_t Packet_Neighbour_Cell_Data;
5024 Packet_Serving_Cell_Data_t Packet_Serving_Cell_Data;
5025 Packet_Paging_Request_t Packet_Paging_Request;
5026 Packet_PDCH_Release_t Packet_PDCH_Release;
5027 Packet_Polling_Request_t Packet_Polling_Request;
5028 Packet_Power_Control_Timing_Advance_t Packet_Power_Control_Timing_Advance;
5029 Packet_PRACH_Parameters_t Packet_PRACH_Parameters;
5030 Packet_Queueing_Notification_t Packet_Queueing_Notification;
5031 Packet_Timeslot_Reconfigure_t Packet_Timeslot_Reconfigure;
5032 Packet_TBF_Release_t Packet_TBF_Release;
5033 Packet_Uplink_Ack_Nack_t Packet_Uplink_Ack_Nack;
5034 Packet_Uplink_Assignment_t Packet_Uplink_Assignment;
5035 Packet_Handover_Command_t Packet_Handover_Command;
5036 Packet_PhysicalInformation_t Packet_PhysicalInformation;
5037 Packet_Downlink_Dummy_Control_Block_t Packet_Downlink_Dummy_Control_Block;
5038 PSI1_t PSI1;
5039 PSI2_t PSI2;
5040 PSI3_t PSI3;
5041 PSI5_t PSI5;
5042 PSI13_t PSI13;
5043 } u;
5045 RLCMAC_block_format_t block_format;
5046 guint flags;
5047 } RlcMacDownlink_t;
5049 typedef gint16 MSGGPRS_Status_t;
5050 /* < Uplink RLC/MAC control message > */
5051 typedef struct
5053 union
5055 guint8 MESSAGE_TYPE;
5056 Packet_Cell_Change_Failure_t Packet_Cell_Change_Failure;
5057 Packet_Control_Acknowledgement_t Packet_Control_Acknowledgement;
5058 Packet_Downlink_Ack_Nack_t Packet_Downlink_Ack_Nack;
5059 Packet_Uplink_Dummy_Control_Block_t Packet_Uplink_Dummy_Control_Block;
5060 Packet_Measurement_Report_t Packet_Measurement_Report;
5061 Packet_Resource_Request_t Packet_Resource_Request;
5062 Packet_Mobile_TBF_Status_t Packet_Mobile_TBF_Status;
5063 Packet_PSI_Status_t Packet_PSI_Status;
5064 EGPRS_PD_AckNack_t Egprs_Packet_Downlink_Ack_Nack;
5065 Packet_Pause_t Packet_Pause;
5066 Packet_Enh_Measurement_Report_t Packet_Enh_Measurement_Report;
5067 Additional_MS_Rad_Access_Cap_t Additional_MS_Rad_Access_Cap;
5068 Packet_Cell_Change_Notification_t Packet_Cell_Change_Notification;
5069 Packet_SI_Status_t Packet_SI_Status;
5070 UL_Data_Block_GPRS_t UL_Data_Block_GPRS;
5071 UL_Data_Block_EGPRS_Header_t UL_Data_Block_EGPRS_Header;
5072 UL_Packet_Control_Ack_11_t UL_Packet_Control_Ack_11;
5073 UL_Packet_Control_Ack_TN_RRBP_11_t UL_Packet_Control_Ack_TN_RRBP_11;
5074 UL_Packet_Control_Ack_8_t UL_Packet_Control_Ack_8;
5075 UL_Packet_Control_Ack_TN_RRBP_8_t UL_Packet_Control_Ack_TN_RRBP_8;
5076 } u;
5077 RLCMAC_block_format_t block_format;
5078 guint flags;
5079 } RlcMacUplink_t;
5081 typedef struct
5083 guint16 bsn1;
5084 guint16 bsn2;
5085 guint8 pi;
5086 }egprs_ul_header_info_t;
5088 typedef struct
5090 guint16 bsn1;
5091 guint16 bsn2;
5092 }egprs_dl_header_info_t;
5094 typedef struct
5096 guint magic;
5097 RLCMAC_block_format_t block_format;
5098 guint8 mcs;
5099 guint frame_number;
5100 #define GSM_RLC_MAC_EGPRS_BLOCK1 0x01
5101 #define GSM_RLC_MAC_EGPRS_BLOCK2 0x02
5102 #define GSM_RLC_MAC_EGPRS_FANR_FLAG 0x08
5103 guint flags;
5104 union
5106 egprs_ul_header_info_t egprs_ul_header_info;
5107 egprs_dl_header_info_t egprs_dl_header_info;
5109 } RlcMacPrivateData_t;
5112 #if 0
5113 void GPRSMSG_Profile(gint16 i);
5114 #endif
5116 /* SI1_RestOctet_t */
5118 typedef struct
5120 gboolean Exist_NCH_Position;
5121 guint8 NCH_Position;
5123 guint8 BandIndicator;
5124 } SI1_RestOctet_t;
5126 /* SI3_Rest_Octet_t */
5127 typedef struct
5129 guint8 CBQ;
5130 guint8 CELL_RESELECT_OFFSET;
5131 guint8 TEMPORARY_OFFSET;
5132 guint8 PENALTY_TIME;
5133 } Selection_Parameters_t;
5135 typedef struct
5137 guint8 Exist_Selection_Parameters;
5138 Selection_Parameters_t Selection_Parameters;
5140 guint8 Exist_Power_Offset;
5141 guint8 Power_Offset;
5143 guint8 System_Information_2ter_Indicator;
5144 guint8 Early_Classmark_Sending_Control;
5146 guint8 Exist_WHERE;
5147 guint8 WHERE;
5149 guint8 Exist_GPRS_Indicator;
5150 guint8 RA_COLOUR;
5151 guint8 SI13_POSITION;
5152 guint8 ECS_Restriction3G;
5153 guint8 ExistSI2quaterIndicator;
5154 guint8 SI2quaterIndicator;
5155 } SI3_Rest_Octet_t;
5157 typedef struct
5159 guint8 Exist_Selection_Parameters;
5160 Selection_Parameters_t Selection_Parameters;
5162 guint8 Exist_Power_Offset;
5163 guint8 Power_Offset;
5165 guint8 Exist_GPRS_Indicator;
5166 guint8 RA_COLOUR;
5167 guint8 SI13_POSITION;
5168 } SI4_Rest_Octet_t;
5170 #if 0
5171 typedef SI4_Rest_Octet_t SI7_Rest_Octet_t;
5172 typedef SI4_Rest_Octet_t SI8_Rest_Octet_t;
5173 #endif
5175 /* SI6_RestOctet_t */
5177 typedef struct
5179 guint8 PagingChannelRestructuring;
5180 guint8 NLN_SACCH;
5182 gboolean Exist_CallPriority;
5183 guint8 CallPriority;
5185 guint8 NLN_Status;
5186 } PCH_and_NCH_Info_t;
5188 typedef struct
5190 gboolean Exist_PCH_and_NCH_Info;
5191 PCH_and_NCH_Info_t PCH_and_NCH_Info;
5193 gboolean Exist_VBS_VGCS_Options;
5194 guint8 VBS_VGCS_Options;
5196 /* The meaning of Exist_DTM_Support is as follows:
5197 * FALSE => DTM is not supported in the serving cell, RAC and MAX_LAPDm are absent in bitstream
5198 * TRUE => DTM is supported in the serving cell, RAC and MAX_LAPDm are present in bitstream
5200 gboolean Exist_DTM_Support;
5201 guint8 RAC;
5202 guint8 MAX_LAPDm;
5204 guint8 BandIndicator; /* bit(1) L/H, L => ARFCN in 1800 band H => ARFCN in 1900 band */
5205 } SI6_RestOctet_t;
5207 /*************************************************
5208 * Enhanced Measurement Report. TS 04.18 9.1.55. *
5209 *************************************************/
5211 typedef struct
5213 guint8 DTX_USED;
5214 guint8 RXLEV_VAL;
5215 guint8 RX_QUAL_FULL;
5216 guint8 MEAN_BEP;
5217 guint8 CV_BEP;
5218 guint8 NBR_RCVD_BLOCKS;
5219 } EMR_ServingCell_t;
5221 typedef struct
5223 guint8 RR_Short_PD;
5224 guint8 MESSAGE_TYPE;
5225 guint8 ShortLayer2_Header;
5227 BA_USED_t BA_USED;
5228 guint8 BSIC_Seen;
5230 guint8 SCALE;
5232 guint8 Exist_ServingCellData;
5233 EMR_ServingCell_t ServingCellData;
5235 guint8 Count_RepeatedInvalid_BSIC_Info; /* Number of instances */
5236 RepeatedInvalid_BSIC_Info_t RepeatedInvalid_BSIC_Info[INV_BSIC_LIST_LEN];
5238 guint8 Exist_ReportBitmap;
5239 guint8 Count_REPORTING_QUANTITY_Instances; /* Number of instances */
5240 REPORTING_QUANTITY_Instance_t REPORTING_QUANTITY_Instances[REPORT_QUANTITY_LIST_LEN];
5242 } EnhancedMeasurementReport_t;
5244 extern gint f_k(gint k, gint *w, gint range);
5246 extern const guint8 gsm_rlcmac_gprs_cs_to_block_length[];
5247 extern const guint8 gsm_rlcmac_egprs_header_type_to_dl_header_block_length[];
5248 extern const guint8 gsm_rlcmac_egprs_header_type_to_ul_header_block_length[];
5249 extern const guint8 gsm_rlcmac_egprs_mcs_to_data_block_length[];
5251 #endif /* __PACKET_GSM_RLCMAC_H__ */