Files
openairinterface5g/openair2/RRC/CELLULAR/rrc_ue_entity.h
T
2013-06-25 09:05:02 +00:00

135 lines
4.1 KiB
C
Executable File

/********************************************************************
rrc_ue_entity.h -
-------------------
copyright : (C) 2001, 2010 by Eurecom
created by : Lionel.Gauthier@eurecom.fr
modified by : Michelle.Wetterwald@eurecom.fr
********************************************************************
Data structure with RRC UE protocol parameters
*******************************************************************/
#ifndef __RRC_UE_ENTITY_H__
#define __RRC_UE_ENTITY_H__
//-------------------------------------------------------------------
#include "rrc_platform_types.h"
#include "rrc_constant.h"
#include "rrc_ue_bch_variables.h"
#include "rrm_config_structs.h"
#include "rrc_ue_variables.h"
#include "rrc_ue_mbms_variables.h"
#include "rrc_ue_L2_intf_variables.h"
/********************************************************************
* Protocol variables *
********************************************************************/
struct rrc_ue_entity {
//-------------------------------------------------------------------
// implementation variables
int protocol_state; //values in rrc_constant.h
int ue_initial_id;
u32 local_connection_ref;
u16 cell_id;
int current_SFN;
struct rrc_neighbor_cells rg_ngbr_list;
char IMEI[14];
u8 establishment_cause;
u8 release_cause;
// u8 failure_cause; // not mw
// u8 failure_indicator; // boolean - not mw
u32 next_MUI; // for RLC AM
int idata_xfer; // flag for Initial data transfer
int last_message_sent;
//Added MSG1
u8 prot_error_indicator; // boolean
u16 nextActivationTime;
int next_state;
struct rrc_ue_msg_infos ue_msg_infos;
struct rrc_ue_trans accepted_trans[MAXTRANS];
struct rrc_ue_trans rejected_trans[MAXTRANS];
struct rrc_ue_trans rcved_trans; //transaction id received in last message
u16 c_rnti;
u16 u_rnti;
//Added MSG2
u8 am_RLC_ErrorIndicationRb2_3or4;
u8 am_RLC_ErrorIndicationRb5orAbove;
u8 rlc_Re_establishIndicatorRb2_3or4;
u8 rlc_Re_establishIndicatorRb5orAbove;
u8 cellUpdateCause;
u8 rejectWaitTime;
u16 ul_nas_message_lgth;
mem_block_t *ul_nas_message_ptr;
u16 dl_nas_message_lgth;
u8 *dl_nas_message_ptr;
u16 paging_message_lgth;
u8 *paging_message_ptr;
struct rrc_ue_rb_information ue_established_rbs[maxRB];
u16 num_rb;
// u8 qos_classes[MAXURAB];
// u8 dscp_codes[MAXURAB];
u16 requested_rbId;
u16 requested_QoSclass;
u16 requested_dscp;
u16 requested_sapid;
// platform configuration
int rrc_currently_updating;
RRM_VARS saved_configuration;
// link to L1
u8 rrc_ue_synch_ind;
u8 rrc_ue_cctrch_synch[maxCCTrCH];
u8 rrc_ue_cctrch[maxCCTrCH];
u8 rrc_ue_outsynch_ind;
u8 rrc_ue_cctrch_outsynch[maxCCTrCH];
/* ** OAI compatible part - begin **/
// Control block for srb-drb asn1-compliant
struct rrc_srb_drb_asn1 ue_rb_asn1;
// Control block for Broadcast asn1-compliant
struct rrc_ue_bch_asn1 ue_bch_asn1;
int mod_id;
/* ** OAI compatible part - end **/
// Control block for Broadcast
struct rrc_ue_bch_blocks ue_bch_blocks;
// Control blocks for measures
int rrc_ue_last_measurement;
int rrc_ue_meas_to_activate;
struct rrc_ue_meas_cmd ue_meas_cmd[MAXMEASTYPES];
struct rrc_ue_meas_rep ue_meas_rep[MAXMEASTYPES];
// Control block for MBMS
rrc_ue_mbms_variables mbms;
// pointer to next message to transmit to NAS
// this is actually the start of a linked list
mem_block_t *NASMessageToXmit;
int ip_rx_irq;
// RT-fifo descriptors
int rrc_ue_GC_fifo;
int rrc_ue_NT_fifo;
int rrc_ue_DCIn_fifo;
int rrc_ue_DCOut_fifo;
//internal parameters
unsigned int ue_broadcast_counter; // temp for sending broadcast to NAS
int ue_wait_establish_req; // possible values = 0 (init), 1 (SIB5 OK), 2 (SIB5 Not OK, SIB1 OK)
int L2_ccch_status; // possible values = 0 (OFF), 1 (IN_PROGRESS), 2 (ON)
char ccch_buffer[100];
int ccch_buffer_size;
int rrc_ue_t300_target;
int rrc_ue_t300_retry;
int rrc_ue_ackSimu_flag;
unsigned int rrc_ue_ackSimu_mui;
unsigned int rrc_ue_ackSimu_srbid;
//list2_t rrc_timers;
};
#endif