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