FreeCalypso > hg > fc-tourmaline
view cdg-hybrid/cdginc/m_grlc.h @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 35f7a1dc9f7d |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : m_grlc.h | | SOURCE : "msg\grlc.mdf" | | LastModified : "2004-02-18" | | IdAndVersion : "8010.603.99.004" | | SrcFileTime : "Wed Nov 28 10:18:54 2007" | | Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : NONE * COMPATIBILITY_DEFINES : NO (require PREFIX) * ALWAYS_ENUM_IN_VAL_FILE: NO * ENABLE_GROUP: NO * CAPITALIZE_TYPENAME: NO * CCDNAME: GRLC */ #ifndef M_GRLC_H #define M_GRLC_H #define CDG_ENTER__M_GRLC_H #define CDG_ENTER__FILENAME _M_GRLC_H #define CDG_ENTER__M_GRLC_H__FILE_TYPE CDGINC #define CDG_ENTER__M_GRLC_H__LAST_MODIFIED _2004_02_18 #define CDG_ENTER__M_GRLC_H__ID_AND_VERSION _8010_603_99_004 #define CDG_ENTER__M_GRLC_H__SRC_FILE_TIME _Wed_Nov_28_10_18_54_2007 #include "CDG_ENTER.h" #undef CDG_ENTER__M_GRLC_H #undef CDG_ENTER__FILENAME #include "m_grlc.val" #include "m_rr_com.h" /* * bitbuffer structure for the element tlli_value */ #ifndef __T_BUF_tlli_value__ #define __T_BUF_tlli_value__ typedef struct { U16 l_tlli_value; U16 o_tlli_value; U8 b_tlli_value[8]; } BUF_tlli_value; /* size <12> */ #endif /* * bitbuffer structure for the element cr_tlli */ #ifndef __T_BUF_cr_tlli__ #define __T_BUF_cr_tlli__ typedef struct { U16 l_cr_tlli; U16 o_cr_tlli; U8 b_cr_tlli[8]; } BUF_cr_tlli; /* size <12> */ #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb_1 */ // #ifndef __T_BUF_urbb_1__ // #define __T_BUF_urbb_1__ // // typedef struct // { // U16 l_urbb_1; // U16 o_urbb_1; // U8 b_urbb_1[20]; // } BUF_urbb_1; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element crbb */ // #ifndef __T_BUF_crbb__ // #define __T_BUF_crbb__ // // typedef struct // { // U16 l_crbb; // U16 o_crbb; // U8 b_crbb[20]; // } BUF_crbb; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb_2 */ // #ifndef __T_BUF_urbb_2__ // #define __T_BUF_urbb_2__ // // typedef struct // { // U16 l_urbb_2; // U16 o_urbb_2; // U8 b_urbb_2[20]; // } BUF_urbb_2; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb_3 */ // #ifndef __T_BUF_urbb_3__ // #define __T_BUF_urbb_3__ // // typedef struct // { // U16 l_urbb_3; // U16 o_urbb_3; // U8 b_urbb_3[20]; // } BUF_urbb_3; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb */ // #ifndef __T_BUF_urbb__ // #define __T_BUF_urbb__ // // typedef struct // { // U16 l_urbb; // U16 o_urbb; // U8 b_urbb[20]; // } BUF_urbb; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb_4 */ // #ifndef __T_BUF_urbb_4__ // #define __T_BUF_urbb_4__ // // typedef struct // { // U16 l_urbb_4; // U16 o_urbb_4; // U8 b_urbb_4[20]; // } BUF_urbb_4; /* size <24> */ // #endif // VAR-FF: REL99 AND FF_EGPRS /* * bitbuffer structure for the element urbb_5 */ // #ifndef __T_BUF_urbb_5__ // #define __T_BUF_urbb_5__ // // typedef struct // { // U16 l_urbb_5; // U16 o_urbb_5; // U8 b_urbb_5[20]; // } BUF_urbb_5; /* size <24> */ // #endif #ifndef __T_glob_tfi__ #define __T_glob_tfi__ /* * Global TFI * CCDGEN:WriteStruct_Count==776 */ typedef struct { U8 flag; /*< 0: 1> Flag */ U8 v_ul_tfi; /*< 1: 1> valid-flag */ U8 ul_tfi; /*< 2: 1> Uplink TFI */ U8 v_dl_tfi; /*< 3: 1> valid-flag */ U8 dl_tfi; /*< 4: 1> Downlink TFI */ U8 _align0; /*< 5: 1> alignment */ U8 _align1; /*< 6: 1> alignment */ U8 _align2; /*< 7: 1> alignment */ } T_glob_tfi; #endif #ifndef __T_chan_req_des__ #define __T_chan_req_des__ /* * Channel Request Description * CCDGEN:WriteStruct_Count==777 */ typedef struct { U8 peak_thr_class; /*< 0: 1> PEAK_THROUGHPUT_CLASS */ U8 radio_prio; /*< 1: 1> RADIO_PRIORITY */ U8 rlc_mode; /*< 2: 1> RLC_MODE */ U8 llc_pdu_type; /*< 3: 1> LLC_PDU_TYPE */ U16 rlc_octet_cnt; /*< 4: 2> RLC_OCTET_COUNT */ U8 _align0; /*< 6: 1> alignment */ U8 _align1; /*< 7: 1> alignment */ } T_chan_req_des; #endif #ifndef __T_block_struct__ #define __T_block_struct__ /* * Blocks Structure * CCDGEN:WriteStruct_Count==778 */ typedef struct { U8 bl_o_bl_per; /*< 0: 1> BLOCKS_OR_BLOCK_PERIODS */ U8 a_map_len; /*< 1: 1> ALLOCATION_BITMAP_LENGTH */ U8 c_alloc_map; /*< 2: 1> counter */ U8 alloc_map[127]; /*< 3:127> ALLOCATION_BITMAP */ U8 _align0; /*<130: 1> alignment */ U8 _align1; /*<131: 1> alignment */ } T_block_struct; #endif #ifndef __T_ext_bits__ #define __T_ext_bits__ /* * Extensions Bits IE * CCDGEN:WriteStruct_Count==779 */ typedef struct { U8 ext_len; /*< 0: 1> Extension Length */ U8 c_spare_ext; /*< 1: 1> counter */ U8 spare_ext[64]; /*< 2: 64> spare bit extensions IE */ U8 _align0; /*< 66: 1> alignment */ U8 _align1; /*< 67: 1> alignment */ } T_ext_bits; #endif #ifndef __T_ilev__ #define __T_ilev__ /* * I_LEVEL Structure * CCDGEN:WriteStruct_Count==780 */ typedef struct { U8 v_ilev0; /*< 0: 1> valid-flag */ U8 ilev0; /*< 1: 1> I_LEVEL_TNO */ U8 v_ilev1; /*< 2: 1> valid-flag */ U8 ilev1; /*< 3: 1> I_LEVEL_TN1 */ U8 v_ilev2; /*< 4: 1> valid-flag */ U8 ilev2; /*< 5: 1> I_LEVEL_TN2 */ U8 v_ilev3; /*< 6: 1> valid-flag */ U8 ilev3; /*< 7: 1> I_LEVEL_TN3 */ U8 v_ilev4; /*< 8: 1> valid-flag */ U8 ilev4; /*< 9: 1> I_LEVEL_TN4 */ U8 v_ilev5; /*< 10: 1> valid-flag */ U8 ilev5; /*< 11: 1> I_LEVEL_TN5 */ U8 v_ilev6; /*< 12: 1> valid-flag */ U8 ilev6; /*< 13: 1> I_LEVEL_TN6 */ U8 v_ilev7; /*< 14: 1> valid-flag */ U8 ilev7; /*< 15: 1> I_LEVEL_TN7 */ } T_ilev; #endif #ifndef __T_chan_qual_rep__ #define __T_chan_qual_rep__ /* * Channel Quality Report * CCDGEN:WriteStruct_Count==781 */ typedef struct { U8 c_value; /*< 0: 1> C_VALUE */ U8 rxqual; /*< 1: 1> RXQUAL */ U8 signvar; /*< 2: 1> SIGN_VAR */ U8 _align0; /*< 3: 1> alignment */ T_ilev ilev; /*< 4: 16> I_LEVEL Structure */ } T_chan_qual_rep; #endif #ifndef __T_ack_nack_des__ #define __T_ack_nack_des__ /* * Ack/Nack Description * CCDGEN:WriteStruct_Count==782 */ typedef struct { U8 f_ack_ind; /*< 0: 1> FINAL_ACK_INDICATION */ U8 ssn; /*< 1: 1> STARTING_SEQUENCE_NUMBER */ U8 rbb[64]; /*< 2: 64> RECEIVE_BLOCK_BITMAP */ U8 _align0; /*< 66: 1> alignment */ U8 _align1; /*< 67: 1> alignment */ } T_ack_nack_des; #endif // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_cbmp_info__ // #define __T_cbmp_info__ // // COMPRESSED_BMP_INFO // CCDGEN:WriteStruct_Count==783 // // typedef struct // { // U8 comp_bmp_len; /*< 0: 0> COMPRESSED_BITMAP_LENGTH */ // U8 cbmp_color_code; /*< 0: 0> COMPRESSED_BITMAP_STARTING_COLOR_CODE */ // BUF_crbb crbb; /*< 0: 0> COMPRESSED_RECEIVED_BLOCK_BITMAP */ // } T_cbmp_info; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_ack_nack_desc__ // #define __T_egprs_ack_nack_desc__ // // EGPRS Ack Nack description // CCDGEN:WriteStruct_Count==784 // // typedef struct // { // U8 f_ack_ind; /*< 0: 1> FINAL_ACK_INDICATION */ // U8 bow; /*< 0: 0> BEGINNING_OF_WINDOW */ // U8 eow; /*< 0: 0> END_OF_WINDOW */ // U8 _align0; /*< 1: 1> alignment */ // U16 essn; /*< 0: 0> EGPRS_STARTING_SEQUENCE_NUMBER */ // U8 v_cbmp_info; /*< 0: 0> valid-flag */ // // T_cbmp_info cbmp_info; /*< 0: 0> COMPRESSED_BMP_INFO */ // U8 _align1; /*< 2: 1> alignment */ // U8 v_urbb; /*< 3: 1> valid-flag */ // BUF_urbb urbb; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP for DL */ // U8 v_urbb_4; /*< 3: 1> valid-flag */ // BUF_urbb_4 urbb_4; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP for DL */ // U8 v_urbb_5; /*< 3: 1> valid-flag */ // BUF_urbb_5 urbb_5; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP for DL */ // U8 _align2; /*< 3: 1> alignment */ // } T_egprs_ack_nack_desc; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_ack_nack_info__ // #define __T_egprs_ack_nack_info__ // // EGPRS Ack/Nack IE // CCDGEN:WriteStruct_Count==785 // // typedef struct // { // U8 flag; /*< 0: 1> Flag */ // U8 v_len; /*< 1: 1> valid-flag */ // U8 len; /*< 0: 0> EGPRS Ack Nack value part Length */ // T_egprs_ack_nack_desc egprs_ack_nack_desc; /*< 0: 0> EGPRS Ack Nack description */ // U8 _align0; /*< 1: 1> alignment */ // U8 _align1; /*< 2: 1> alignment */ // U8 _align2; /*< 3: 1> alignment */ // } T_egprs_ack_nack_info; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_ul_egprs_ack_nack_info__ // #define __T_ul_egprs_ack_nack_info__ // // Uplink EGPRS Ack/Nack IE // CCDGEN:WriteStruct_Count==786 // // typedef struct // { // U8 flag; /*< 0: 1> Flag */ // U8 v_len; /*< 1: 1> valid-flag */ // U8 len; /*< 0: 0> EGPRS Ack Nack value part Length */ // U8 f_ack_ind; /*< 1: 1> FINAL_ACK_INDICATION */ // U8 bow; /*< 0: 0> BEGINNING_OF_WINDOW */ // U8 eow; /*< 0: 0> END_OF_WINDOW */ // U16 essn; /*< 0: 0> EGPRS_STARTING_SEQUENCE_NUMBER */ // U8 flag2; /*< 2: 1> Flag2 */ // U8 v_cbmp_info; /*< 0: 0> valid-flag */ // // T_cbmp_info cbmp_info; /*< 0: 0> COMPRESSED_BMP_INFO */ // U8 v_urbb_1; /*< 3: 1> valid-flag */ // BUF_urbb_1 urbb_1; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP for UL */ // U8 v_urbb_2; /*< 3: 1> valid-flag */ // BUF_urbb_2 urbb_2; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP */ // U8 v_urbb_3; /*< 3: 1> valid-flag */ // BUF_urbb_3 urbb_3; /*< 0: 0> UNCOMPRESSED_RECEIVED_BLOCK_BITMAP */ // U8 _align0; /*< 3: 1> alignment */ // } T_ul_egprs_ack_nack_info; // #endif // #ifndef __T_abs__ #define __T_abs__ /* * TBF Starting Time Absolute * CCDGEN:WriteStruct_Count==787 */ typedef struct { U8 t1; /*< 0: 1> T1' */ U8 t3; /*< 1: 1> T3 */ U8 t2; /*< 2: 1> T2 */ U8 _align0; /*< 3: 1> alignment */ } T_abs; #endif #ifndef __T_tbf_s_time__ #define __T_tbf_s_time__ /* * TBF Starting Time * CCDGEN:WriteStruct_Count==788 */ typedef struct { U8 flag; /*< 0: 1> Flag */ U8 v_rel; /*< 1: 1> valid-flag */ U16 rel; /*< 2: 2> TBF Starting Time Relative */ U8 _align0; /*< 4: 1> alignment */ U8 _align1; /*< 5: 1> alignment */ U8 _align2; /*< 6: 1> alignment */ U8 v_abs; /*< 7: 1> valid-flag */ T_abs abs; /*< 8: 4> TBF Starting Time Absolute */ } T_tbf_s_time; #endif #ifndef __T_fa_s2__ #define __T_fa_s2__ /* * FA Sub2 * CCDGEN:WriteStruct_Count==789 */ typedef struct { T_tbf_s_time tbf_s_time; /*< 0: 12> TBF Starting Time */ U8 v_ts_alloc; /*< 12: 1> valid-flag */ U8 ts_alloc; /*< 13: 1> TIMESLOT_ALLOCATION */ U8 flag; /*< 14: 1> Flag */ U8 v_block_struct; /*< 15: 1> valid-flag */ T_block_struct block_struct; /*< 16:132> Blocks Structure */ U8 v_alloc_map; /*<148: 1> valid-flag */ U8 c_alloc_map; /*<149: 1> counter */ U8 alloc_map[127]; /*<150:127> ALLOCATION_BITMAP */ U8 _align0; /*<277: 1> alignment */ U8 _align1; /*<278: 1> alignment */ U8 _align2; /*<279: 1> alignment */ } T_fa_s2; #endif #ifndef __T_f_alloc_ack__ #define __T_f_alloc_ack__ /* * Fixed Allocation Uplink Ack/Nack * CCDGEN:WriteStruct_Count==790 */ typedef struct { U8 final_alloc; /*< 0: 1> FINAL_ALLOCATION */ U8 flag; /*< 1: 1> Flag */ U8 v_ts_overr; /*< 2: 1> valid-flag */ U8 ts_overr; /*< 3: 1> TS_OVERRIDE */ U8 _align0; /*< 4: 1> alignment */ U8 _align1; /*< 5: 1> alignment */ U8 _align2; /*< 6: 1> alignment */ U8 v_fa_s2; /*< 7: 1> valid-flag */ T_fa_s2 fa_s2; /*< 8:280> FA Sub2 */ } T_f_alloc_ack; #endif #ifndef __T_gamma_tn__ #define __T_gamma_tn__ /* * Gamma Array * CCDGEN:WriteStruct_Count==791 */ typedef struct { U8 v_gamma; /*< 0: 1> valid-flag */ U8 gamma; /*< 1: 1> GAMMA_TN */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_gamma_tn; #endif #ifndef __T_pwr_par__ #define __T_pwr_par__ /* * Power Control Parameters * CCDGEN:WriteStruct_Count==792 */ typedef struct { U8 alpha; /*< 0: 1> Alpha */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_gamma_tn gamma_tn[8]; /*< 4: 32> Gamma Array */ } T_pwr_par; #endif // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_gmsk_8psk__ // #define __T_gmsk_8psk__ // // GMSK_8PSK // CCDGEN:WriteStruct_Count==793 // // typedef struct // { // U8 flag; /*< 0: 1> Flag */ // U8 v_gmsk_mean_bep_tn; /*< 1: 1> valid-flag */ // U8 gmsk_mean_bep_tn; /*< 0: 0> GMSK MEAN BEP TN */ // U8 v_psk8_mean_bep_tn; /*< 1: 1> valid-flag */ // U8 psk8_mean_bep_tn; /*< 0: 0> PSK8 MEAN BEP TN */ // U8 _align0; /*< 1: 1> alignment */ // U8 _align1; /*< 2: 1> alignment */ // U8 _align2; /*< 3: 1> alignment */ // } T_gmsk_8psk; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_gmsk_str__ // #define __T_gmsk_str__ // // GMSK struct // CCDGEN:WriteStruct_Count==794 // // typedef struct // { // U8 m_bep; /*< 0: 0> MEAN_BEP */ // U8 cv_bep; /*< 0: 0> CV_BEP */ // } T_gmsk_str; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_psk8_str__ // #define __T_psk8_str__ // // PSK8 Struct // CCDGEN:WriteStruct_Count==795 // // typedef struct // { // U8 m_bep; /*< 0: 0> MEAN_BEP */ // U8 cv_bep; /*< 0: 0> CV_BEP */ // } T_psk8_str; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_bep_lnk_qual_meas__ // #define __T_egprs_bep_lnk_qual_meas__ // // EGPRS BEP Link Quality Measurements // CCDGEN:WriteStruct_Count==796 // // typedef struct // { // U8 v_gmsk_str; /*< 0: 0> valid-flag */ // // T_gmsk_str gmsk_str; /*< 0: 0> GMSK struct */ // U8 v_psk8_str; /*< 0: 0> valid-flag */ // // T_psk8_str psk8_str; /*< 0: 0> PSK8 Struct */ // } T_egprs_bep_lnk_qual_meas; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_bep_tn__ // #define __T_bep_tn__ // // BEP per Time Slot // CCDGEN:WriteStruct_Count==797 // // typedef struct // { // U8 v_gmsk_8psk; /*< 0: 0> valid-flag */ // // T_gmsk_8psk gmsk_8psk; /*< 0: 0> GMSK_8PSK */ // } T_bep_tn; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_bep_meas__ // #define __T_bep_meas__ // // BEP measurements // CCDGEN:WriteStruct_Count==798 // // typedef struct // { // T_bep_tn bep_tn[MAX_NUM_BEP_TN]; /*< 0: 0> BEP per Time Slot */ // } T_bep_meas; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_timesl_qual_meas__ // #define __T_egprs_timesl_qual_meas__ // // EGPRS Timeslot Link Quality Measurement // CCDGEN:WriteStruct_Count==799 // // typedef struct // { // U8 v_bep_meas; /*< 0: 0> valid-flag */ // // T_bep_meas bep_meas; /*< 0: 0> BEP measurements */ // U8 _align0; /*< 0: 1> alignment */ // U8 _align1; /*< 1: 1> alignment */ // U8 _align2; /*< 2: 1> alignment */ // U8 v_ilev; /*< 3: 1> valid-flag */ // // T_ilev ilev; /*< 4: 16> I_LEVEL Structure */ // } T_egprs_timesl_qual_meas; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_chan_qual_rep__ // #define __T_egprs_chan_qual_rep__ // // EGPRS Channel Quality Report // CCDGEN:WriteStruct_Count==800 // // typedef struct // { // T_egprs_bep_lnk_qual_meas egprs_bep_lnk_qual_meas; /*< 0: 0> EGPRS BEP Link Quality Measurements */ // U8 c_value; /*< 0: 1> C_VALUE */ // T_egprs_timesl_qual_meas egprs_timesl_qual_meas; /*< 0: 0> EGPRS Timeslot Link Quality Measurement */ // U8 _align0; /*< 1: 1> alignment */ // U8 _align1; /*< 2: 1> alignment */ // U8 _align2; /*< 3: 1> alignment */ // } T_egprs_chan_qual_rep; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_ul_ack_nack_trnc_grp__ // #define __T_egprs_ul_ack_nack_trnc_grp__ // // EGPRS Ack/Nack desc and Fixed Alloc trunc group // CCDGEN:WriteStruct_Count==801 // // typedef struct // { // T_ul_egprs_ack_nack_info ul_egprs_ack_nack_info; /*< 0: 0> Uplink EGPRS Ack/Nack IE */ // U8 _align0; /*< 0: 1> alignment */ // U8 _align1; /*< 1: 1> alignment */ // U8 _align2; /*< 2: 1> alignment */ // U8 v_f_alloc_ack; /*< 3: 1> valid-flag */ // // T_f_alloc_ack f_alloc_ack; /*< 4:288> Fixed Allocation Uplink Ack/Nack */ // } T_egprs_ul_ack_nack_trnc_grp; // #endif // // STRUCT-FF: REL99 // #ifndef __T_release_99_str_d_ul_ack__ // #define __T_release_99_str_d_ul_ack__ // // R99 structure // CCDGEN:WriteStruct_Count==802 // // typedef struct // { // U8 v_p_ext_ta; /*< 0: 1> valid-flag */ // U8 p_ext_ta; /*< 0: 0> Packet_Extend_Timing_Advance */ // U8 tbf_est; /*< 0: 0> TBF_EST */ // } T_release_99_str_d_ul_ack; // #endif // #ifndef __T_ta_index_tn__ #define __T_ta_index_tn__ /* * TA index and timeslot structure * CCDGEN:WriteStruct_Count==803 */ typedef struct { U8 ta_index; /*< 0: 1> TA_INDEX */ U8 ta_tn; /*< 1: 1> TIMING_ADVANCE_TIMESLOT_NUMBER */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_ta_index_tn; #endif #ifndef __T_pta__ #define __T_pta__ /* * Packet Timing Advance * CCDGEN:WriteStruct_Count==804 */ typedef struct { U8 v_ta_value; /*< 0: 1> valid-flag */ U8 ta_value; /*< 1: 1> TIMING_ADVANCE_VALUE */ U8 _align0; /*< 2: 1> alignment */ U8 v_ta_index_tn; /*< 3: 1> valid-flag */ T_ta_index_tn ta_index_tn; /*< 4: 4> TA index and timeslot structure */ } T_pta; #endif #ifndef __T_gprs_ul_ack_nack_info__ #define __T_gprs_ul_ack_nack_info__ /* * GPRS Uplink Ack Nack structure * CCDGEN:WriteStruct_Count==805 */ typedef struct { U8 chan_coding_cmd; /*< 0: 1> CHANNEL_CODING_COMMAND */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_ack_nack_des ack_nack_des; /*< 4: 68> Ack/Nack Description */ U8 _align3; /*< 72: 1> alignment */ U8 _align4; /*< 73: 1> alignment */ U8 _align5; /*< 74: 1> alignment */ U8 v_cr_tlli; /*< 75: 1> valid-flag */ BUF_cr_tlli cr_tlli; /*< 76: 12> CONTENTION_RESOLUTION_TLLI */ U8 _align6; /*< 88: 1> alignment */ U8 _align7; /*< 89: 1> alignment */ U8 _align8; /*< 90: 1> alignment */ U8 v_pta; /*< 91: 1> valid-flag */ T_pta pta; /*< 92: 8> Packet Timing Advance */ U8 _align9; /*<100: 1> alignment */ U8 _align10; /*<101: 1> alignment */ U8 _align11; /*<102: 1> alignment */ U8 v_pwr_par; /*<103: 1> valid-flag */ T_pwr_par pwr_par; /*<104: 36> Power Control Parameters */ U8 _align12; /*<140: 1> alignment */ U8 _align13; /*<141: 1> alignment */ U8 _align14; /*<142: 1> alignment */ U8 v_ext_bits; /*<143: 1> valid-flag */ T_ext_bits ext_bits; /*<144: 68> Extensions Bits IE */ U8 _align15; /*<212: 1> alignment */ U8 _align16; /*<213: 1> alignment */ U8 _align17; /*<214: 1> alignment */ U8 v_f_alloc_ack; /*<215: 1> valid-flag */ T_f_alloc_ack f_alloc_ack; /*<216:288> Fixed Allocation Uplink Ack/Nack */ // ELEM-FF: REL99 // U8 v_release_99_str_d_ul_ack; /*< 0: 0> valid-flag */ // // T_release_99_str_d_ul_ack release_99_str_d_ul_ack; /*< 0: 0> R99 structure */ } T_gprs_ul_ack_nack_info; #endif // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_ul_ack_nack__ // #define __T_egprs_ul_ack_nack__ // // EGPRS Uplink Ack Nack description // CCDGEN:WriteStruct_Count==806 // // typedef struct // { // U8 egprs_chan_coding_cmd; /*< 0: 0> EGPRS_CHANNEL_CODING_COMMAND */ // U8 ul_rlc_resegment; /*< 0: 0> UL rlc block resegment */ // U8 pre_emptive_tx; /*< 0: 0> PRE_EMPTIVE_TRANSMISSION */ // U8 prr_retx_req; /*< 0: 0> PRR RETRANSMISSION REQUEST */ // U8 arac_retx_req; /*< 0: 0> arac retransmission request */ // U8 _align0; /*< 0: 1> alignment */ // U8 _align1; /*< 1: 1> alignment */ // U8 _align2; /*< 2: 1> alignment */ // U8 v_cr_tlli; /*< 3: 1> valid-flag */ // BUF_cr_tlli cr_tlli; /*< 4: 12> CONTENTION_RESOLUTION_TLLI */ // U8 tbf_est; /*< 0: 0> TBF_EST */ // U8 _align3; /*< 16: 1> alignment */ // U8 _align4; /*< 17: 1> alignment */ // U8 _align5; /*< 18: 1> alignment */ // U8 v_pta; /*< 19: 1> valid-flag */ // // T_pta pta; /*< 20: 8> Packet Timing Advance */ // U8 v_p_ext_ta; /*< 28: 1> valid-flag */ // U8 p_ext_ta; /*< 0: 0> Packet_Extend_Timing_Advance */ // U8 _align6; /*< 28: 1> alignment */ // U8 _align7; /*< 29: 1> alignment */ // U8 _align8; /*< 30: 1> alignment */ // U8 v_pwr_par; /*< 31: 1> valid-flag */ // // T_pwr_par pwr_par; /*< 32: 36> Power Control Parameters */ // U8 _align9; /*< 68: 1> alignment */ // U8 _align10; /*< 69: 1> alignment */ // U8 _align11; /*< 70: 1> alignment */ // U8 v_ext_bits; /*< 71: 1> valid-flag */ // // T_ext_bits ext_bits; /*< 72: 68> Extensions Bits IE */ // T_egprs_ul_ack_nack_trnc_grp egprs_ul_ack_nack_trnc_grp; /*< 0: 0> EGPRS Ack/Nack desc and Fixed Alloc trunc group */ // } T_egprs_ul_ack_nack; // #endif // // STRUCT-FF: REL99 AND FF_EGPRS // #ifndef __T_egprs_ul_ack_nack_info__ // #define __T_egprs_ul_ack_nack_info__ // // EGPRS Uplink Ack Nack IE // CCDGEN:WriteStruct_Count==807 // // typedef struct // { // U8 Choice_flag; /*< 0: 0> Choice_flag */ // U8 v_egprs_ul_ack_nack; /*< 0: 0> valid-flag */ // // T_egprs_ul_ack_nack egprs_ul_ack_nack; /*< 0: 0> EGPRS Uplink Ack Nack description */ // } T_egprs_ul_ack_nack_info; // #endif // // STRUCT-FF: REL99 // #ifndef __T_release_99_str_grlc_prr__ // #define __T_release_99_str_grlc_prr__ // // R99 structure // CCDGEN:WriteStruct_Count==808 // // typedef struct // { // ELEM-FF: REL99 AND !FF_EGPRS // U8 flag; /*< 0: 0> Flag */ // ELEM-FF: REL99 AND !FF_EGPRS // U8 flag2; /*< 0: 0> Flag2 */ // ELEM-FF: REL99 AND FF_EGPRS // U8 v_egprs_bep_lnk_qual_meas; /*< 0: 0> valid-flag */ // // T_egprs_bep_lnk_qual_meas egprs_bep_lnk_qual_meas; /*< 0: 0> EGPRS BEP Link Quality Measurements */ // ELEM-FF: REL99 AND FF_EGPRS // U8 v_egprs_timesl_qual_meas; /*< 0: 0> valid-flag */ // // T_egprs_timesl_qual_meas egprs_timesl_qual_meas; /*< 0: 0> EGPRS Timeslot Link Quality Measurement */ // U8 v_pfi; /*< 0: 1> valid-flag */ // U8 pfi; /*< 0: 0> PFI */ // U8 add_ms_rac; /*< 0: 0> ADD_MS_RAC_INFO_AVAIL */ // U8 retrans_of_prr; /*< 0: 0> RETRANS_OF_PRR */ // } T_release_99_str_grlc_prr; // #endif // // STRUCT-FF: REL99 // #ifndef __T_release_99_str_u_grlc_dl_ack__ // #define __T_release_99_str_u_grlc_dl_ack__ // // R99 structure // CCDGEN:WriteStruct_Count==809 // // typedef struct // { // U8 v_pfi; /*< 0: 1> valid-flag */ // U8 pfi; /*< 0: 0> PFI */ // } T_release_99_str_u_grlc_dl_ack; // #endif // /* * End of substructure section, begin of message definition section */ #ifndef __T_U_GRLC_RESOURCE_REQ__ #define __T_U_GRLC_RESOURCE_REQ__ /* * * CCDGEN:WriteStruct_Count==810 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 v_access_type; /*< 1: 1> valid-flag */ U8 access_type; /*< 2: 1> Access Type */ U8 flag; /*< 3: 1> Flag */ U8 _align0; /*< 4: 1> alignment */ U8 _align1; /*< 5: 1> alignment */ U8 _align2; /*< 6: 1> alignment */ U8 v_glob_tfi; /*< 7: 1> valid-flag */ T_glob_tfi glob_tfi; /*< 8: 8> Global TFI */ U8 _align3; /*< 16: 1> alignment */ U8 _align4; /*< 17: 1> alignment */ U8 _align5; /*< 18: 1> alignment */ U8 v_tlli_value; /*< 19: 1> valid-flag */ BUF_tlli_value tlli_value; /*< 20: 12> TLLI */ U8 _align6; /*< 32: 1> alignment */ U8 _align7; /*< 33: 1> alignment */ U8 _align8; /*< 34: 1> alignment */ U8 v_ra_cap; /*< 35: 1> valid-flag */ T_ra_cap ra_cap; /*< 36: 84> MS RA capability value part (type defined in "m_rr_com.h") */ T_chan_req_des chan_req_des; /*<120: 8> Channel Request Description */ U8 v_ma_ch_mark; /*<128: 1> valid-flag */ U8 ma_ch_mark; /*<129: 1> MA_CHANGE_MARK */ U8 c_value; /*<130: 1> C_VALUE */ U8 v_signvar; /*<131: 1> valid-flag */ U8 signvar; /*<132: 1> SIGN_VAR */ U8 _align9; /*<133: 1> alignment */ U8 _align10; /*<134: 1> alignment */ U8 _align11; /*<135: 1> alignment */ T_ilev ilev; /*<136: 16> I_LEVEL Structure */ // ELEM-FF: REL99 // U8 v_release_99_str_grlc_prr; /*< 0: 0> valid-flag */ // // T_release_99_str_grlc_prr release_99_str_grlc_prr; /*< 0: 0> R99 structure */ } T_U_GRLC_RESOURCE_REQ; #endif #ifndef __T_U_GRLC_DL_ACK__ #define __T_U_GRLC_DL_ACK__ /* * * CCDGEN:WriteStruct_Count==811 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 dl_tfi; /*< 1: 1> Downlink TFI */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ T_ack_nack_des ack_nack_des; /*< 4: 68> Ack/Nack Description */ U8 _align2; /*< 72: 1> alignment */ U8 _align3; /*< 73: 1> alignment */ U8 _align4; /*< 74: 1> alignment */ U8 v_chan_req_des; /*< 75: 1> valid-flag */ T_chan_req_des chan_req_des; /*< 76: 8> Channel Request Description */ T_chan_qual_rep chan_qual_rep; /*< 84: 20> Channel Quality Report */ // ELEM-FF: REL99 // U8 v_release_99_str_u_grlc_dl_ack; /*< 0: 0> valid-flag */ // // T_release_99_str_u_grlc_dl_ack release_99_str_u_grlc_dl_ack; /*< 0: 0> R99 structure */ } T_U_GRLC_DL_ACK; #endif // MSG-FF: REL99 AND FF_EGPRS // #ifndef __T_U_GRLC_E_DL_ACK__ // #define __T_U_GRLC_E_DL_ACK__ // // // CCDGEN:WriteStruct_Count==812 // // typedef struct // { // U8 msg_type; /*< 0: 1> Message Type */ // U8 dl_tfi; /*< 1: 1> Downlink TFI */ // U8 is_out_of_mem; /*< 0: 0> MS_OUT_OF_MEMORY */ // U8 v_egprs_chan_qual_rep; /*< 0: 0> valid-flag */ // // T_egprs_chan_qual_rep egprs_chan_qual_rep; /*< 0: 0> EGPRS Channel Quality Report */ // U8 _align0; /*< 2: 1> alignment */ // U8 v_chan_req_des; /*< 3: 1> valid-flag */ // // T_chan_req_des chan_req_des; /*< 4: 8> Channel Request Description */ // U8 v_pfi; /*< 12: 1> valid-flag */ // U8 pfi; /*< 0: 0> PFI */ // U8 _align1; /*< 12: 1> alignment */ // U8 _align2; /*< 13: 1> alignment */ // U8 _align3; /*< 14: 1> alignment */ // U8 v_ext_bits; /*< 15: 1> valid-flag */ // // T_ext_bits ext_bits; /*< 16: 68> Extensions Bits IE */ // T_egprs_ack_nack_info egprs_ack_nack_info; /*< 0: 0> EGPRS Ack/Nack IE */ // } T_U_GRLC_E_DL_ACK; // #endif // #ifndef __T_D_GRLC_UL_ACK__ #define __T_D_GRLC_UL_ACK__ /* * * CCDGEN:WriteStruct_Count==813 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 page_mode; /*< 1: 1> Page Mode */ U8 ul_tfi; /*< 2: 1> Uplink TFI */ U8 egprs_flag; /*< 3: 1> Egprs escape */ U8 _align0; /*< 4: 1> alignment */ U8 _align1; /*< 5: 1> alignment */ U8 _align2; /*< 6: 1> alignment */ U8 v_gprs_ul_ack_nack_info; /*< 7: 1> valid-flag */ T_gprs_ul_ack_nack_info gprs_ul_ack_nack_info; /*< 8:504> GPRS Uplink Ack Nack structure */ // ELEM-FF: REL99 AND FF_EGPRS // U8 v_egprs_ul_ack_nack_info; /*< 0: 0> valid-flag */ // // T_egprs_ul_ack_nack_info egprs_ul_ack_nack_info; /*< 0: 0> EGPRS Uplink Ack Nack IE */ } T_D_GRLC_UL_ACK; #endif #ifndef __T_U_GRLC_CTRL_ACK__ #define __T_U_GRLC_CTRL_ACK__ /* * * CCDGEN:WriteStruct_Count==814 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ BUF_tlli_value tlli_value; /*< 4: 12> TLLI */ U8 pctrl_ack; /*< 16: 1> P_CONTROL_ACK */ U8 _align3; /*< 17: 1> alignment */ U8 _align4; /*< 18: 1> alignment */ U8 _align5; /*< 19: 1> alignment */ } T_U_GRLC_CTRL_ACK; #endif // MSG-FF: REL99 AND FF_EGPRS // #ifndef __T_U_GRLC_ADD_MS_RADIO_CAP__ // #define __T_U_GRLC_ADD_MS_RADIO_CAP__ // // // CCDGEN:WriteStruct_Count==815 // // typedef struct // { // U8 msg_type; /*< 0: 1> Message Type */ // U8 flag; /*< 1: 1> Flag */ // U8 _align0; /*< 2: 1> alignment */ // U8 v_glob_tfi; /*< 3: 1> valid-flag */ // // T_glob_tfi glob_tfi; /*< 4: 8> Global TFI */ // U8 _align1; /*< 12: 1> alignment */ // U8 _align2; /*< 13: 1> alignment */ // U8 _align3; /*< 14: 1> alignment */ // U8 v_tlli_value; /*< 15: 1> valid-flag */ // BUF_tlli_value tlli_value; /*< 16: 12> TLLI */ // T_ra_cap ra_cap; /*< 28: 84> MS RA capability value part (type defined in "m_rr_com.h") */ // } T_U_GRLC_ADD_MS_RADIO_CAP; // #endif // #ifndef __T_U_GRLC_UL_DUMMY__ #define __T_U_GRLC_UL_DUMMY__ /* * * CCDGEN:WriteStruct_Count==816 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ BUF_tlli_value tlli_value; /*< 4: 12> TLLI */ } T_U_GRLC_UL_DUMMY; #endif #include "CDG_LEAVE.h" #endif