Commit 56d45ba3 authored by winckel's avatar winckel

Fixed warnings.

Moved some direct printf into logging system.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4491 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 008f7c19
...@@ -977,7 +977,7 @@ void add_ue_spec_dci(DCI_PDU *DCI_pdu,void *pdu,u16 rnti,unsigned char dci_size_ ...@@ -977,7 +977,7 @@ void add_ue_spec_dci(DCI_PDU *DCI_pdu,void *pdu,u16 rnti,unsigned char dci_size_
void schedule_SI(unsigned char Mod_id,u32 frame, unsigned char *nprb,unsigned int *nCCE) { void schedule_SI(unsigned char Mod_id,u32 frame, unsigned char *nprb,unsigned int *nCCE) {
unsigned char bcch_sdu_length; unsigned char bcch_sdu_length;
int mcs; int mcs = -1;
void *BCCH_alloc_pdu=(void*)&eNB_mac_inst[Mod_id].BCCH_alloc_pdu; void *BCCH_alloc_pdu=(void*)&eNB_mac_inst[Mod_id].BCCH_alloc_pdu;
bcch_sdu_length = mac_rrc_data_req(Mod_id, bcch_sdu_length = mac_rrc_data_req(Mod_id,
...@@ -1103,7 +1103,7 @@ int schedule_MBMS(unsigned char Mod_id,u32 frame, u8 subframe) { ...@@ -1103,7 +1103,7 @@ int schedule_MBMS(unsigned char Mod_id,u32 frame, u8 subframe) {
unsigned char mcch_sdu_length; unsigned char mcch_sdu_length;
unsigned char header_len_mcch=0,header_len_msi=0,header_len_mtch=0, header_len_mtch_temp=0, header_len_mcch_temp=0, header_len_msi_temp=0; unsigned char header_len_mcch=0,header_len_msi=0,header_len_mtch=0, header_len_mtch_temp=0, header_len_mcch_temp=0, header_len_msi_temp=0;
int ii=0, msi_pos=0; int ii=0, msi_pos=0;
int mcch_mcs; int mcch_mcs = -1;
u16 TBS,j,padding=0,post_padding=0; u16 TBS,j,padding=0,post_padding=0;
mac_rlc_status_resp_t rlc_status; mac_rlc_status_resp_t rlc_status;
int num_mtch; int num_mtch;
...@@ -1575,7 +1575,8 @@ void schedule_RA(unsigned char Mod_id,u32 frame, unsigned char subframe,unsigned ...@@ -1575,7 +1575,8 @@ void schedule_RA(unsigned char Mod_id,u32 frame, unsigned char subframe,unsigned
u16 rrc_sdu_length; u16 rrc_sdu_length;
unsigned char lcid,offset; unsigned char lcid,offset;
s8 UE_id; s8 UE_id;
unsigned short TBsize,msg4_padding,msg4_post_padding,msg4_header; unsigned short TBsize = -1;
unsigned short msg4_padding,msg4_post_padding,msg4_header;
for (i=0;i<NB_RA_PROC_MAX;i++) { for (i=0;i<NB_RA_PROC_MAX;i++) {
......
...@@ -65,9 +65,11 @@ unsigned short fill_rar(u8 Mod_id, ...@@ -65,9 +65,11 @@ unsigned short fill_rar(u8 Mod_id,
RA_HEADER_RAPID *rarh = (RA_HEADER_RAPID *)dlsch_buffer; RA_HEADER_RAPID *rarh = (RA_HEADER_RAPID *)dlsch_buffer;
// RAR_PDU *rar = (RAR_PDU *)(dlsch_buffer+1); // RAR_PDU *rar = (RAR_PDU *)(dlsch_buffer+1);
uint8_t *rar = (uint8_t *)(dlsch_buffer+1); uint8_t *rar = (uint8_t *)(dlsch_buffer+1);
int i,ra_idx; int i;
int ra_idx = -1;
uint16_t rballoc; uint16_t rballoc;
uint8_t mcs,TPC,cqi_req,ULdelay,cqireq; uint8_t mcs,TPC,ULdelay,cqireq;
//uint8_t cqi_req;
for (i=0;i<NB_RA_PROC_MAX;i++) { for (i=0;i<NB_RA_PROC_MAX;i++) {
if (eNB_mac_inst[Mod_id].RA_template[i].generate_rar == 1) { if (eNB_mac_inst[Mod_id].RA_template[i].generate_rar == 1) {
......
...@@ -546,11 +546,11 @@ s8 ue_get_mbsfn_sf_alloction (unsigned char Mod_id, u8 mbsfn_sync_area, unsigned ...@@ -546,11 +546,11 @@ s8 ue_get_mbsfn_sf_alloction (unsigned char Mod_id, u8 mbsfn_sync_area, unsigned
int ue_query_mch(uint8_t Mod_id, uint32_t frame, uint32_t subframe, uint8_t eNB_index,uint8_t *sync_area, uint8_t *mcch_active) { int ue_query_mch(uint8_t Mod_id, uint32_t frame, uint32_t subframe, uint8_t eNB_index,uint8_t *sync_area, uint8_t *mcch_active) {
int i=0, j=0, ii=0, msi_pos=0, mcch_mcs; int i=0, j=0, ii=0, msi_pos=0, mcch_mcs = - 1;
int mcch_flag=0, mtch_flag=0, msi_flag=0; int mcch_flag=0, mtch_flag=0, msi_flag=0;
int mbsfn_period = 0;// 1<<(UE_mac_inst[Mod_id].mbsfn_SubframeConfig[0]->radioframeAllocationPeriod); int mbsfn_period = 0;// 1<<(UE_mac_inst[Mod_id].mbsfn_SubframeConfig[0]->radioframeAllocationPeriod);
int mcch_period = 0;// 32<<(UE_mac_inst[Mod_id].mbsfn_AreaInfo[0]->mcch_Config_r9.mcch_RepetitionPeriod_r9); int mcch_period = 0;// 32<<(UE_mac_inst[Mod_id].mbsfn_AreaInfo[0]->mcch_Config_r9.mcch_RepetitionPeriod_r9);
int mch_scheduling_period; int mch_scheduling_period = -1;
if (UE_mac_inst[Mod_id].pmch_Config[0]) if (UE_mac_inst[Mod_id].pmch_Config[0])
mch_scheduling_period = 8<<(UE_mac_inst[Mod_id].pmch_Config[0]->mch_SchedulingPeriod_r9); mch_scheduling_period = 8<<(UE_mac_inst[Mod_id].pmch_Config[0]->mch_SchedulingPeriod_r9);
...@@ -1270,8 +1270,8 @@ UE_L2_STATE_t ue_scheduler(u8 Mod_id,u32 frame, u8 subframe, lte_subframe_t dire ...@@ -1270,8 +1270,8 @@ UE_L2_STATE_t ue_scheduler(u8 Mod_id,u32 frame, u8 subframe, lte_subframe_t dire
int lcid; // lcid index int lcid; // lcid index
int TTI= 1; int TTI= 1;
int bucketsizeduration; int bucketsizeduration = -1;
int bucketsizeduration_max; int bucketsizeduration_max = -1;
// mac_rlc_status_resp_t rlc_status[MAX_NUM_LCGID]; // 4 // mac_rlc_status_resp_t rlc_status[MAX_NUM_LCGID]; // 4
// s8 lcg_id; // s8 lcg_id;
struct RACH_ConfigCommon *rach_ConfigCommon = (struct RACH_ConfigCommon *)NULL; struct RACH_ConfigCommon *rach_ConfigCommon = (struct RACH_ConfigCommon *)NULL;
......
...@@ -642,7 +642,7 @@ rlc_um_receive_process_dar (rlc_um_entity_t *rlcP, u32_t frame, u8_t eNB_flag, m ...@@ -642,7 +642,7 @@ rlc_um_receive_process_dar (rlc_um_entity_t *rlcP, u32_t frame, u8_t eNB_flag, m
// -else: // -else:
// -place the received UMD PDU in the reception buffer. // -place the received UMD PDU in the reception buffer.
signed int sn; signed int sn = -1;
signed int in_window; signed int in_window;
if (rlcP->rx_sn_length == 10) { if (rlcP->rx_sn_length == 10) {
......
...@@ -174,7 +174,7 @@ typedef struct { ...@@ -174,7 +174,7 @@ typedef struct {
#define RLC_MAX_LC ((max_val_DRB_Identity+1)* MAX_MOBILES_PER_RG) #define RLC_MAX_LC ((max_val_DRB_Identity+1)* MAX_MOBILES_PER_RG)
#endif #endif
protected_rlc(void (*rlc_rrc_data_ind) (module_id_t , u32_t, u8_t, rb_id_t , sdu_size_t , char* );) protected_rlc(void (*rlc_rrc_data_ind) (module_id_t , u32_t, u8_t, rb_id_t , sdu_size_t , u8_t* );)
protected_rlc(void (*rlc_rrc_data_conf) (module_id_t , rb_id_t , mui_t, rlc_tx_status_t );) protected_rlc(void (*rlc_rrc_data_conf) (module_id_t , rb_id_t , mui_t, rlc_tx_status_t );)
/*! \struct rlc_pointer_t /*! \struct rlc_pointer_t
......
...@@ -42,10 +42,9 @@ rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t module_idP, u32_t frameP, u ...@@ -42,10 +42,9 @@ rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t module_idP, u32_t frameP, u
long int cnt2 = 0; long int cnt2 = 0;
// long int mrb_id = 0; // long int mrb_id = 0;
long int mbms_service_id = 0; long int mbms_service_id = 0;
long int mbms_session_id = 0; // long int mbms_session_id = 0;
PMCH_Info_r9_t* pmch_info_r9 = NULL; PMCH_Info_r9_t* pmch_info_r9 = NULL;
MBMS_SessionInfo_r9_t* mbms_session = NULL; MBMS_SessionInfo_r9_t* mbms_session = NULL;
DL_UM_RLC_t* mbms_dl_UM_RLC = NULL;
rlc_op_status_t rlc_status = RLC_OP_STATUS_OK; rlc_op_status_t rlc_status = RLC_OP_STATUS_OK;
DL_UM_RLC_t dl_um_rlc; DL_UM_RLC_t dl_um_rlc;
#endif #endif
...@@ -284,12 +283,13 @@ rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t module_idP, u32_t frameP, u ...@@ -284,12 +283,13 @@ rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t module_idP, u32_t frameP, u
lc_id = mbms_session->logicalChannelIdentity_r9 + (maxDRB + 3); lc_id = mbms_session->logicalChannelIdentity_r9 + (maxDRB + 3);
} }
/*
if (mbms_session->sessionId_r9 != NULL) { if (mbms_session->sessionId_r9 != NULL) {
mbms_session_id = mbms_session->sessionId_r9->buf[0]; mbms_session_id = mbms_session->sessionId_r9->buf[0];
} else { } else {
mbms_session_id = mbms_session->logicalChannelIdentity_r9; mbms_session_id = mbms_session->logicalChannelIdentity_r9;
} }
*/
mbms_service_id = mbms_session->tmgi_r9.serviceId_r9.buf[2];// can use the pmch_index, here is the value 'cnt' mbms_service_id = mbms_session->tmgi_r9.serviceId_r9.buf[2];// can use the pmch_index, here is the value 'cnt'
rb_id = (mbms_service_id * maxSessionPerPMCH) + lc_id; rb_id = (mbms_service_id * maxSessionPerPMCH) + lc_id;
...@@ -424,20 +424,20 @@ rlc_op_status_t rrc_rlc_add_rlc (module_id_t module_idP, u32_t frameP, rb_id_t ...@@ -424,20 +424,20 @@ rlc_op_status_t rrc_rlc_add_rlc (module_id_t module_idP, u32_t frameP, rb_id_t
if ((chan_idP >= RLC_MAX_LC ) || (chan_idP < 1)) { if ((chan_idP >= RLC_MAX_LC ) || (chan_idP < 1)) {
LOG_E(RLC,"Got wrong channel id %d\n",chan_idP); LOG_E(RLC,"Got wrong channel id %d\n",chan_idP);
exit -1; exit (-1);
return RLC_OP_STATUS_BAD_PARAMETER; return RLC_OP_STATUS_BAD_PARAMETER;
} }
if (rb_idP >= RLC_MAX_RB ) { if (rb_idP >= RLC_MAX_RB ) {
LOG_E(RLC,"Got wrong radio bearer id %d\n",rb_idP); LOG_E(RLC,"Got wrong radio bearer id %d\n",rb_idP);
exit -1; exit (-1);
return RLC_OP_STATUS_BAD_PARAMETER; return RLC_OP_STATUS_BAD_PARAMETER;
} }
if (rlc[module_idP].m_lcid2rbid[chan_idP] != -1) { if (rlc[module_idP].m_lcid2rbid[chan_idP] != -1) {
LOG_E(RLC,"Error in RLC config channel ID already configured %d(module_id %d, state %d)\n", LOG_E(RLC,"Error in RLC config channel ID already configured %d(module_id %d, state %d)\n",
chan_idP, module_idP, rlc[module_idP].m_lcid2rbid[chan_idP]); chan_idP, module_idP, rlc[module_idP].m_lcid2rbid[chan_idP]);
exit -1; exit (-1);
return RLC_OP_STATUS_BAD_PARAMETER; return RLC_OP_STATUS_BAD_PARAMETER;
} }
for (index = 0; index < index_max; index++) { for (index = 0; index < index_max; index++) {
......
...@@ -242,10 +242,10 @@ typedef struct ...@@ -242,10 +242,10 @@ typedef struct
s16 (*get_PL)(u8 Mod_id,u8 eNB_index); s16 (*get_PL)(u8 Mod_id,u8 eNB_index);
/// Function for UE MAC to retrieve the rssi /// Function for UE MAC to retrieve the rssi
u8 (*get_RSSI)(u8 Mod_id); s8 (*get_RSSI)(u8 Mod_id);
/// Function for UE MAC to retrieve the total gain /// Function for UE MAC to retrieve the total gain
u8 (*get_rx_total_gain_dB)(u8 Mod_id); s8 (*get_rx_total_gain_dB)(u8 Mod_id);
/// Function for UE MAC to retrieve the number of adjustent cells /// Function for UE MAC to retrieve the number of adjustent cells
u8 (*get_n_adj_cells)(u8 Mod_id); u8 (*get_n_adj_cells)(u8 Mod_id);
......
...@@ -107,7 +107,7 @@ s8 mac_rrc_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu,u16 Sdu_len,u8 eNB ...@@ -107,7 +107,7 @@ s8 mac_rrc_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu,u16 Sdu_len,u8 eNB
} }
/********************************************************************************************************************/ /********************************************************************************************************************/
void rlcrrc_data_ind( u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int Srb_id, unsigned int Sdu_size,u8 *Buffer){ void rlcrrc_data_ind(module_id_t Mod_id, u32 frame, u8 eNB_flag, unsigned int Srb_id, unsigned int Sdu_size,u8 *Buffer){
/********************************************************************************************************************/ /********************************************************************************************************************/
#ifdef CELLULAR #ifdef CELLULAR
rrc_L2_rlc_data_ind_rx(Mod_id,Srb_id, Sdu_size, Buffer); rrc_L2_rlc_data_ind_rx(Mod_id,Srb_id, Sdu_size, Buffer);
......
...@@ -42,20 +42,29 @@ ...@@ -42,20 +42,29 @@
s8 mac_rrc_data_req(u8 Mod_id, u32 frame, u16 Srb_id, u8 Nb_tb, u8 *Buffer, u8 eNB_flag, u8 eNB_index, s8 mac_rrc_data_req(u8 Mod_id, u32 frame, u16 Srb_id, u8 Nb_tb, u8 *Buffer, u8 eNB_flag, u8 eNB_index,
u8 mbsfn_sync_area); u8 mbsfn_sync_area);
s8 mac_rrc_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu, u16 Sdu_len, u8 eNB_flag, u8 eNB_index, s8 mac_rrc_data_ind(u8 Mod_id, u32 frame, u16 Srb_id, u8 *Sdu, u16 Sdu_len, u8 eNB_flag, u8 eNB_index,
u8 mbsfn_sync_area); u8 mbsfn_sync_area);
void mac_lite_sync_ind(u8 Mod_id, u8 status); void mac_lite_sync_ind(u8 Mod_id, u8 status);
void mac_rrc_meas_ind(u8, MAC_MEAS_REQ_ENTRY*); void mac_rrc_meas_ind(u8, MAC_MEAS_REQ_ENTRY*);
void rlcrrc_data_ind(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int Rb_id, u32 sdu_size, u8 *Buffer);
void rlcrrc_data_ind(module_id_t Mod_id, u32 frame, u8 eNB_flag, unsigned int Rb_id, u32 sdu_size, u8 *Buffer);
u8 pdcp_rrc_data_req(u8 module_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32 muiP, u32 confirmP, u8 pdcp_rrc_data_req(u8 module_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32 muiP, u32 confirmP,
unsigned int sdu_buffer_size, u8* sdu_buffer, u8 mode); unsigned int sdu_buffer_size, u8* sdu_buffer, u8 mode);
void pdcp_rrc_data_ind(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int Srb_id, unsigned int Sdu_size, u8 *Buffer); void pdcp_rrc_data_ind(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int Srb_id, unsigned int Sdu_size, u8 *Buffer);
void mac_out_of_sync_ind(u8 Mod_id, u32 frame, u16 CH_index); void mac_out_of_sync_ind(u8 Mod_id, u32 frame, u16 CH_index);
char openair_rrc_eNB_init(u8 Mod_id); char openair_rrc_eNB_init(u8 Mod_id);
char openair_rrc_ue_init(u8 Mod_id, unsigned char eNB_index); char openair_rrc_ue_init(u8 Mod_id, unsigned char eNB_index);
int mac_get_rrc_status(u8 Mod_id, u8 eNB_flag, u8 index); int mac_get_rrc_status(u8 Mod_id, u8 eNB_flag, u8 index);
void mac_in_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index); void mac_in_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index);
#endif #endif
...@@ -508,7 +508,7 @@ u8 rrc_lite_data_req(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32 ...@@ -508,7 +508,7 @@ u8 rrc_lite_data_req(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32
} }
//-------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------//
void rrc_lite_data_ind( u8 Mod_id, u32 frame, u8 eNB_flag,u32 Srb_id, u32 sdu_size,u8 *Buffer){ void rrc_lite_data_ind(module_id_t Mod_id, u32 frame, u8 eNB_flag,u32 Srb_id, u32 sdu_size,u8 *Buffer){
//-------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------//
u8 UE_index=(Srb_id-1)/NB_RB_MAX; u8 UE_index=(Srb_id-1)/NB_RB_MAX;
u8 DCCH_index = Srb_id % NB_RB_MAX; u8 DCCH_index = Srb_id % NB_RB_MAX;
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
* \email: raymond.knopp@eurecom.fr and navid.nikaein@eurecom.fr * \email: raymond.knopp@eurecom.fr and navid.nikaein@eurecom.fr
*/ */
#ifndef __OPENAIR_RRC_DEFS_H__ #ifndef __OPENAIR_RRC_DEFS_H__
#define __OPENAIR_RRC_DEFS_H__ #define __OPENAIR_RRC_DEFS_H__
...@@ -94,7 +93,7 @@ ...@@ -94,7 +93,7 @@
//#define NUM_PRECONFIGURED_LCHAN (NB_CH_CX*2) //BCCH, CCCH //#define NUM_PRECONFIGURED_LCHAN (NB_CH_CX*2) //BCCH, CCCH
typedef enum { typedef enum UE_STATE_e {
RRC_IDLE=0, RRC_IDLE=0,
RRC_SI_RECEIVED, RRC_SI_RECEIVED,
RRC_CONNECTED, RRC_CONNECTED,
...@@ -102,8 +101,7 @@ typedef enum { ...@@ -102,8 +101,7 @@ typedef enum {
RRC_HO_EXECUTION RRC_HO_EXECUTION
} UE_STATE_t; } UE_STATE_t;
typedef enum HO_STATE_e {
typedef enum {
HO_IDLE=0, HO_IDLE=0,
HO_MEASURMENT, HO_MEASURMENT,
HO_PREPARE, HO_PREPARE,
...@@ -111,7 +109,6 @@ typedef enum { ...@@ -111,7 +109,6 @@ typedef enum {
HO_COMPLETE // initiated by the target eNB HO_COMPLETE // initiated by the target eNB
} HO_STATE_t; } HO_STATE_t;
//#define NUMBER_OF_UE_MAX MAX_MOBILES_PER_RG //#define NUMBER_OF_UE_MAX MAX_MOBILES_PER_RG
#define RRM_FREE(p) if ( (p) != NULL) { free(p) ; p=NULL ; } #define RRM_FREE(p) if ( (p) != NULL) { free(p) ; p=NULL ; }
#define RRM_MALLOC(t,n) (t *) malloc16( sizeof(t) * n ) #define RRM_MALLOC(t,n) (t *) malloc16( sizeof(t) * n )
...@@ -127,11 +124,10 @@ typedef enum { ...@@ -127,11 +124,10 @@ typedef enum {
#define UNDEF_SECURITY_MODE 0xff #define UNDEF_SECURITY_MODE 0xff
#define NO_SECURITY_MODE 0x33 #define NO_SECURITY_MODE 0x33
#define CBA_OFFSET 0xfff4 #define CBA_OFFSET 0xfff4
// #define NUM_MAX_CBA_GROUP 4 // in the platform_constants // #define NUM_MAX_CBA_GROUP 4 // in the platform_constants
typedef struct{ typedef struct UE_RRC_INFO_s {
UE_STATE_t State; UE_STATE_t State;
u8 SIB1Status; u8 SIB1Status;
u8 SIStatus; u8 SIStatus;
...@@ -151,17 +147,16 @@ typedef struct{ ...@@ -151,17 +147,16 @@ typedef struct{
u32 T310_cnt; u32 T310_cnt;
u32 N310_cnt; u32 N310_cnt;
u32 N311_cnt; u32 N311_cnt;
}UE_RRC_INFO; } __attribute__ ((__packed__)) UE_RRC_INFO;
typedef struct UE_S_TMSI_s { typedef struct UE_S_TMSI_s {
uint8_t presence; uint8_t presence;
uint8_t mme_code; uint8_t mme_code;
uint32_t m_tmsi; uint32_t m_tmsi;
}__attribute__ ((__packed__)) UE_S_TMSI; } __attribute__ ((__packed__)) UE_S_TMSI;
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
typedef enum e_rab_satus_e typedef enum e_rab_satus_e {
{
E_RAB_STATUS_NEW, E_RAB_STATUS_NEW,
E_RAB_STATUS_DONE, E_RAB_STATUS_DONE,
E_RAB_STATUS_FAILED, E_RAB_STATUS_FAILED,
...@@ -170,10 +165,10 @@ typedef enum e_rab_satus_e ...@@ -170,10 +165,10 @@ typedef enum e_rab_satus_e
typedef struct e_rab_param_s { typedef struct e_rab_param_s {
e_rab_t param; e_rab_t param;
uint8_t status; uint8_t status;
} e_rab_param_t; } __attribute__ ((__packed__)) e_rab_param_t;
#endif #endif
typedef struct eNB_RRC_UE_INFO_s{ typedef struct eNB_RRC_UE_INFO_s {
u8 Status; u8 Status;
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
...@@ -193,9 +188,9 @@ typedef struct eNB_RRC_UE_INFO_s{ ...@@ -193,9 +188,9 @@ typedef struct eNB_RRC_UE_INFO_s{
/* list of e_rab to be setup by RRC layers */ /* list of e_rab to be setup by RRC layers */
e_rab_param_t e_rab[S1AP_MAX_E_RAB]; e_rab_param_t e_rab[S1AP_MAX_E_RAB];
#endif #endif
}__attribute__ ((__packed__)) eNB_RRC_UE_INFO; } __attribute__ ((__packed__)) eNB_RRC_UE_INFO;
typedef struct eNB_RRC_INFO_s{ typedef struct eNB_RRC_INFO_s {
/* Number of UE handle by the eNB */ /* Number of UE handle by the eNB */
uint8_t Nb_ue; uint8_t Nb_ue;
...@@ -204,18 +199,18 @@ typedef struct eNB_RRC_INFO_s{ ...@@ -204,18 +199,18 @@ typedef struct eNB_RRC_INFO_s{
/* Information on UE */ /* Information on UE */
eNB_RRC_UE_INFO UE[NUMBER_OF_UE_MAX]; eNB_RRC_UE_INFO UE[NUMBER_OF_UE_MAX];
}__attribute__ ((__packed__)) eNB_RRC_INFO; } __attribute__ ((__packed__)) eNB_RRC_INFO;
typedef struct{ typedef struct RRC_INFO_s {
int Status; int Status;
union{ union{
UE_RRC_INFO UE_info; UE_RRC_INFO UE_info;
eNB_RRC_INFO CH_info; eNB_RRC_INFO CH_info;
}Info; }Info;
}RRC_INFO; } RRC_INFO;
/* Intermediate structure for Hanodver management. Associated per-UE in eNB_RRC_INST */ /* Intermediate structure for Hanodver management. Associated per-UE in eNB_RRC_INST */
typedef struct{ typedef struct HANDOVER_INFO_s {
u8 ho_prepare; u8 ho_prepare;
u8 ho_complete; u8 ho_complete;
u8 modid_s; //Mod_id of serving cell u8 modid_s; //Mod_id of serving cell
...@@ -226,7 +221,7 @@ typedef struct{ ...@@ -226,7 +221,7 @@ typedef struct{
AS_Context_t as_context; /* They are mandatory for HO */ AS_Context_t as_context; /* They are mandatory for HO */
uint8_t buf[RRC_BUF_SIZE]; /* ASN.1 encoded handoverCommandMessage */ uint8_t buf[RRC_BUF_SIZE]; /* ASN.1 encoded handoverCommandMessage */
int size; /* size of above message in bytes */ int size; /* size of above message in bytes */
}HANDOVER_INFO; } HANDOVER_INFO;
#define RRC_HEADER_SIZE_MAX 64 #define RRC_HEADER_SIZE_MAX 64
#define RRC_BUFFER_SIZE_MAX 1024 #define RRC_BUFFER_SIZE_MAX 1024
...@@ -237,27 +232,27 @@ typedef struct{ ...@@ -237,27 +232,27 @@ typedef struct{
}RRC_BUFFER; }RRC_BUFFER;
#define RRC_BUFFER_SIZE sizeof(RRC_BUFFER) #define RRC_BUFFER_SIZE sizeof(RRC_BUFFER)
typedef struct{ typedef struct RB_INFO_s {
u16 Rb_id; //=Lchan_id u16 Rb_id; //=Lchan_id
LCHAN_DESC Lchan_desc[2]; LCHAN_DESC Lchan_desc[2];
MAC_MEAS_REQ_ENTRY *Meas_entry; MAC_MEAS_REQ_ENTRY *Meas_entry;
}RB_INFO; } RB_INFO;
typedef struct SRB_INFO{ typedef struct SRB_INFO_s {
u16 Srb_id; //=Lchan_id u16 Srb_id; //=Lchan_id
RRC_BUFFER Rx_buffer; RRC_BUFFER Rx_buffer;
RRC_BUFFER Tx_buffer; RRC_BUFFER Tx_buffer;
LCHAN_DESC Lchan_desc[2]; LCHAN_DESC Lchan_desc[2];
unsigned int Trans_id; unsigned int Trans_id;
u8 Active; u8 Active;
}SRB_INFO; } SRB_INFO;
typedef struct{ typedef struct RB_INFO_TABLE_ENTRY_s {
RB_INFO Rb_info; RB_INFO Rb_info;
u8 Active; u8 Active;
u32 Next_check_frame; u32 Next_check_frame;
u8 Status; u8 Status;
}RB_INFO_TABLE_ENTRY; } RB_INFO_TABLE_ENTRY;
typedef struct{ typedef struct{
SRB_INFO Srb_info; SRB_INFO Srb_info;
...@@ -266,19 +261,18 @@ typedef struct{ ...@@ -266,19 +261,18 @@ typedef struct{
u32 Next_check_frame; u32 Next_check_frame;
}SRB_INFO_TABLE_ENTRY; }SRB_INFO_TABLE_ENTRY;
typedef struct { typedef struct MEAS_REPORT_LIST_s {
MeasId_t measId; MeasId_t measId;
//CellsTriggeredList cellsTriggeredList;//OPTIONAL //CellsTriggeredList cellsTriggeredList;//OPTIONAL
u32 numberOfReportsSent; u32 numberOfReportsSent;
} MEAS_REPORT_LIST; } MEAS_REPORT_LIST;
typedef struct { typedef struct HANDOVER_INFO_UE_s {
PhysCellId_t targetCellId; PhysCellId_t targetCellId;
u8 measFlag; u8 measFlag;
}HANDOVER_INFO_UE; } HANDOVER_INFO_UE;
typedef struct{ typedef struct eNB_RRC_INST_s {
uint8_t *SIB1; uint8_t *SIB1;
uint8_t sizeof_SIB1; uint8_t sizeof_SIB1;
uint8_t *SIB23; uint8_t *SIB23;
...@@ -334,13 +328,13 @@ typedef struct{ ...@@ -334,13 +328,13 @@ typedef struct{
} eNB_RRC_INST; } eNB_RRC_INST;
#define MAX_UE_CAPABILITY_SIZE 255 #define MAX_UE_CAPABILITY_SIZE 255
typedef struct{ typedef struct OAI_UECapability_s {
uint8_t sdu[MAX_UE_CAPABILITY_SIZE]; uint8_t sdu[MAX_UE_CAPABILITY_SIZE];
uint8_t sdu_size; uint8_t sdu_size;
UE_EUTRA_Capability_t *UE_EUTRA_Capability; UE_EUTRA_Capability_t *UE_EUTRA_Capability;
} OAI_UECapability_t; } OAI_UECapability_t;
typedef struct{ typedef struct UE_RRC_INST_s {
uint8_t *UECapability; uint8_t *UECapability;
uint8_t UECapability_size; uint8_t UECapability_size;
UE_RRC_INFO Info[NB_SIG_CNX_UE]; UE_RRC_INFO Info[NB_SIG_CNX_UE];
...@@ -409,7 +403,7 @@ typedef struct{ ...@@ -409,7 +403,7 @@ typedef struct{
/* Used integrity/ciphering algorithms */ /* Used integrity/ciphering algorithms */
e_SecurityAlgorithmConfig__cipheringAlgorithm ciphering_algorithm; e_SecurityAlgorithmConfig__cipheringAlgorithm ciphering_algorithm;
e_SecurityAlgorithmConfig__integrityProtAlgorithm integrity_algorithm; e_SecurityAlgorithmConfig__integrityProtAlgorithm integrity_algorithm;
}UE_RRC_INST; } UE_RRC_INST;
//main.c //main.c
int rrc_init_global_param(void); int rrc_init_global_param(void);
...@@ -494,14 +488,12 @@ s32 rrc_ue_establish_srb2(u8 Mod_id,u32 frame, u8 eNB_index,struct SRB_ToAddMod ...@@ -494,14 +488,12 @@ s32 rrc_ue_establish_srb2(u8 Mod_id,u32 frame, u8 eNB_index,struct SRB_ToAddMod
@returns 0 on success */ @returns 0 on success */
s32 rrc_ue_establish_drb(u8 Mod_id,u32 frame,u8 eNB_index,struct DRB_ToAddMod *DRB_config); s32 rrc_ue_establish_drb(u8 Mod_id,u32 frame,u8 eNB_index,struct DRB_ToAddMod *DRB_config);
/** \brief Process MobilityControlInfo Message to proceed with handover and configure PHY/MAC /** \brief Process MobilityControlInfo Message to proceed with handover and configure PHY/MAC
\param Mod_id Instance of UE on which to act \param Mod_id Instance of UE on which to act
\param frame frame time interval \param frame frame time interval
\param eNB_index Index of corresponding CH/eNB \param eNB_index Index of corresponding CH/eNB
\param mobilityControlInfo Pointer to mobilityControlInfo \param mobilityControlInfo Pointer to mobilityControlInfo
*/ */
void rrc_ue_process_mobilityControlInfo(u8 Mod_id,u32 frame, u8 eNB_index,struct MobilityControlInfo *mobilityControlInfo); void rrc_ue_process_mobilityControlInfo(u8 Mod_id,u32 frame, u8 eNB_index,struct MobilityControlInfo *mobilityControlInfo);
/** \brief Process a measConfig Message and configure PHY/MAC /** \brief Process a measConfig Message and configure PHY/MAC
...@@ -576,33 +568,48 @@ void *rrc_ue_task(void *args_p); ...@@ -576,33 +568,48 @@ void *rrc_ue_task(void *args_p);
\param UE_index Index of UE transmitting the messages*/ \param UE_index Index of UE transmitting the messages*/
void rrc_eNB_generate_RRCConnectionReconfiguration_handover(u8 Mod_id, u32 frame, u16 UE_index, u8 *nas_pdu, u32 nas_length); void rrc_eNB_generate_RRCConnectionReconfiguration_handover(u8 Mod_id, u32 frame, u16 UE_index, u8 *nas_pdu, u32 nas_length);
//L2_interface.c //L2_interface.c
s8 mac_rrc_lite_data_req( u8 Mod_id, u32 frame, unsigned short Srb_id, u8 Nb_tb, u8 *Buffer,u8 eNB_flag, u8 eNB_index, u8 mbsfn_sync_area); s8 mac_rrc_lite_data_req( u8 Mod_id, u32 frame, unsigned short Srb_id, u8 Nb_tb, u8 *Buffer,u8 eNB_flag, u8 eNB_index, u8 mbsfn_sync_area);
s8 mac_rrc_lite_data_ind( u8 Mod_id, u32 frame, unsigned short Srb_id, u8 *Sdu, unsigned short Sdu_len,u8 eNB_flag,u8 eNB_index, u8 mbsfn_sync_area); s8 mac_rrc_lite_data_ind( u8 Mod_id, u32 frame, unsigned short Srb_id, u8 *Sdu, unsigned short Sdu_len,u8 eNB_flag,u8 eNB_index, u8 mbsfn_sync_area);
void mac_sync_ind( u8 Mod_id, u8 status); void mac_sync_ind( u8 Mod_id, u8 status);
u8 rrc_lite_data_req(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32 muiP, u32 confirmP, u8 rrc_lite_data_req(u8 Mod_id, u32 frame, u8 eNB_flag, unsigned int rb_id, u32 muiP, u32 confirmP,
unsigned int sdu_size, u8* Buffer, u8 mode); unsigned int sdu_size, u8* Buffer, u8 mode);
void rrc_lite_data_ind( u8 Mod_id, u32 frame, u8 eNB_flag, u32 Rb_id, u32 sdu_size,u8 *Buffer);
void rrc_lite_data_ind(module_id_t Mod_id, u32 frame, u8 eNB_flag, u32 Rb_id, u32 sdu_size,u8 *Buffer);
void rrc_lite_in_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index); void rrc_lite_in_sync_ind(u8 Mod_id, u32 frame, u16 eNB_index);
void rrc_lite_out_of_sync_ind(u8 Mod_id, u32 frame, unsigned short eNB_index); void rrc_lite_out_of_sync_ind(u8 Mod_id, u32 frame, unsigned short eNB_index);
int decode_MCCH_Message(u8 Mod_id, u32 frame, u8 eNB_index, u8 *Sdu, u8 Sdu_len,u8 mbsfn_sync_area); int decode_MCCH_Message(u8 Mod_id, u32 frame, u8 eNB_index, u8 *Sdu, u8 Sdu_len,u8 mbsfn_sync_area);
void decode_MBSFNAreaConfiguration(u8 Mod_id, u8 eNB_index, u32 frame,u8 mbsfn_sync_area); void decode_MBSFNAreaConfiguration(u8 Mod_id, u8 eNB_index, u32 frame,u8 mbsfn_sync_area);
int decode_BCCH_DLSCH_Message(u8 Mod_id,u32 frame,u8 eNB_index,u8 *Sdu,u8 Sdu_len); int decode_BCCH_DLSCH_Message(u8 Mod_id,u32 frame,u8 eNB_index,u8 *Sdu,u8 Sdu_len);
int decode_SIB1(u8 Mod_id,u8 eNB_index); int decode_SIB1(u8 Mod_id,u8 eNB_index);
int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window); int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window);
void ue_meas_filtering(u8 Mod_id,u32 frame,u8 eNB_index);
void ue_measurement_report_triggering(u8 Mod_id, u32 frame,u8 eNB_index);
int mac_get_rrc_lite_status(u8 Mod_id,u8 eNB_flag,u8 index); int mac_get_rrc_lite_status(u8 Mod_id,u8 eNB_flag,u8 index);
void rrc_eNB_generate_UECapabilityEnquiry(u8 Mod_id, u32 frame, u16 UE_index); void rrc_eNB_generate_UECapabilityEnquiry(u8 Mod_id, u32 frame, u16 UE_index);
void rrc_eNB_generate_SecurityModeCommand(u8 Mod_id, u32 frame, u16 UE_index); void rrc_eNB_generate_SecurityModeCommand(u8 Mod_id, u32 frame, u16 UE_index);
void rrc_eNB_process_MeasurementReport(u8 Mod_id,u32 frame, u16 UE_index,MeasResults_t *measResults2) ; void rrc_eNB_process_MeasurementReport(u8 Mod_id,u32 frame, u16 UE_index,MeasResults_t *measResults2) ;
void rrc_eNB_generate_HandoverPreparationInformation (u8 Mod_id, u32 frame, u8 UE_index, PhysCellId_t targetPhyId) ; void rrc_eNB_generate_HandoverPreparationInformation (u8 Mod_id, u32 frame, u8 UE_index, PhysCellId_t targetPhyId) ;
void check_handovers(u8 Mod_id, u32 frame);
u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index, u8 meas_index, u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index, u8 meas_index,
Q_OffsetRange_t ofn, Q_OffsetRange_t ocn, Hysteresis_t hys, Q_OffsetRange_t ofn, Q_OffsetRange_t ocn, Hysteresis_t hys,
Q_OffsetRange_t ofs, Q_OffsetRange_t ocs, long a3_offset, TimeToTrigger_t ttt); Q_OffsetRange_t ofs, Q_OffsetRange_t ocs, long a3_offset, TimeToTrigger_t ttt);
...@@ -613,8 +620,7 @@ u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index, ...@@ -613,8 +620,7 @@ u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index,
void rrc_remove_UE (u8 Mod_id, u8 UE_id); void rrc_remove_UE (u8 Mod_id, u8 UE_id);
long binary_search_int(int elements[], long numElem, int value); long binary_search_int(int elements[], long numElem, int value);
long binary_search_float(float elements[], long numElem, float value); long binary_search_float(float elements[], long numElem, float value);
#endif #endif
/** @ */ /** @ */
...@@ -1739,6 +1739,7 @@ void dump_sib13(SystemInformationBlockType13_r9_t *sib13) { ...@@ -1739,6 +1739,7 @@ void dump_sib13(SystemInformationBlockType13_r9_t *sib13) {
} }
#endif #endif
//const char SIBPeriod[7][7]= {"80ms\0","160ms\0","320ms\0","640ms\0","1280ms\0","2560ms\0","5120ms\0"}; //const char SIBPeriod[7][7]= {"80ms\0","160ms\0","320ms\0","640ms\0","1280ms\0","2560ms\0","5120ms\0"};
int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) { int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) {
...@@ -1898,7 +1899,6 @@ int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) { ...@@ -1898,7 +1899,6 @@ int decode_SI(u8 Mod_id,u32 frame,u8 eNB_index,u8 si_window) {
return 0; return 0;
} }
// layer 3 filtering of RSRP (EUTRA) measurements: 36.331, Sec. 5.5.3.2 // layer 3 filtering of RSRP (EUTRA) measurements: 36.331, Sec. 5.5.3.2
void ue_meas_filtering(u8 Mod_id,u32 frame,u8 eNB_index){ void ue_meas_filtering(u8 Mod_id,u32 frame,u8 eNB_index){
float a = UE_rrc_inst[Mod_id].filter_coeff_rsrp; // 'a' in 36.331 Sec. 5.5.3.2 float a = UE_rrc_inst[Mod_id].filter_coeff_rsrp; // 'a' in 36.331 Sec. 5.5.3.2
......
...@@ -401,7 +401,7 @@ RRC_status_t rrc_rx_tx(u8 Mod_id,u32 frame, u8 eNB_flag,u8 index){ ...@@ -401,7 +401,7 @@ RRC_status_t rrc_rx_tx(u8 Mod_id,u32 frame, u8 eNB_flag,u8 index){
} }
long binary_search_int(int elements[], long numElem, int value) { long binary_search_int(int elements[], long numElem, int value) {
long first, last, middle, search; long first, last, middle, search = -1;
first = 0; first = 0;
last = numElem-1; last = numElem-1;
middle = (first+last)/2; middle = (first+last)/2;
...@@ -432,7 +432,7 @@ long binary_search_int(int elements[], long numElem, int value) { ...@@ -432,7 +432,7 @@ long binary_search_int(int elements[], long numElem, int value) {
Used for RSRP and RSRQ measurement mapping. Can potentially be used for other things Used for RSRP and RSRQ measurement mapping. Can potentially be used for other things
*/ */
long binary_search_float(float elements[], long numElem, float value) { long binary_search_float(float elements[], long numElem, float value) {
long first, last, middle, search; long first, last, middle;
first = 0; first = 0;
last = numElem-1; last = numElem-1;
middle = (first+last)/2; middle = (first+last)/2;
......
...@@ -557,11 +557,11 @@ void get_beta_map() { ...@@ -557,11 +557,11 @@ void get_beta_map() {
} }
fclose(fp); fclose(fp);
// } // }
// LOG_D(OCM,"Print the table for mcs %d\n",mcs); LOG_D(OCM,"Print the table for mcs %d\n",mcs);
printf("Print the table for mcs %d\n",mcs); // printf("Print the table for mcs %d\n",mcs);
for (t = 0; t<table_length[mcs]; t++) for (t = 0; t<table_length[mcs]; t++)
// LOG_D(OCM,"%lf %lf \n ",sinr_bler_map[mcs][0][t],sinr_bler_map[mcs][1][t]); LOG_D(OCM,"%lf %lf \n ",sinr_bler_map[mcs][0][t],sinr_bler_map[mcs][1][t]);
printf("%lf %lf \n ",sinr_bler_map[mcs][0][t],sinr_bler_map[mcs][1][t]); // printf("%lf %lf \n ",sinr_bler_map[mcs][0][t],sinr_bler_map[mcs][1][t]);
} }
free(file_path); free(file_path);
} }
...@@ -603,7 +603,8 @@ void get_MIESM_param() { ...@@ -603,7 +603,8 @@ void get_MIESM_param() {
fclose(fp); fclose(fp);
for (t = 0; t < 162; t++){ for (t = 0; t < 162; t++){
// MI_map_4Qam[0][t] = pow(10,0.1*(MI_map_4Qam[0][t])); // MI_map_4Qam[0][t] = pow(10,0.1*(MI_map_4Qam[0][t]));
printf("MIESM 4QAM Table: %lf %lf %1f\n ",MI_map_4qam[0][t],MI_map_4qam[1][t], MI_map_4qam[2][t]); LOG_D(OCM, "MIESM 4QAM Table: %lf %lf %1f\n ",MI_map_4qam[0][t],MI_map_4qam[1][t], MI_map_4qam[2][t]);
// printf("MIESM 4QAM Table: %lf %lf %1f\n ",MI_map_4qam[0][t],MI_map_4qam[1][t], MI_map_4qam[2][t]);
} }
break; break;
case 16: case 16:
...@@ -621,7 +622,8 @@ void get_MIESM_param() { ...@@ -621,7 +622,8 @@ void get_MIESM_param() {
fclose(fp); fclose(fp);
for (t = 0; t < 197; t++){ for (t = 0; t < 197; t++){
// MI_map_16Qam[0][t] = pow(10,0.1*(MI_map_16Qam[0][t])); // MI_map_16Qam[0][t] = pow(10,0.1*(MI_map_16Qam[0][t]));
printf("MIESM 16 QAM Table: %lf %lf %1f\n ",MI_map_16qam[0][t],MI_map_16qam[1][t], MI_map_16qam[2][t]); LOG_D(OCM, "MIESM 16 QAM Table: %lf %lf %1f\n ",MI_map_16qam[0][t],MI_map_16qam[1][t], MI_map_16qam[2][t]);
// printf("MIESM 16 QAM Table: %lf %lf %1f\n ",MI_map_16qam[0][t],MI_map_16qam[1][t], MI_map_16qam[2][t]);
} }
break; break;
case 64: case 64:
...@@ -641,7 +643,8 @@ void get_MIESM_param() { ...@@ -641,7 +643,8 @@ void get_MIESM_param() {
fclose(fp); fclose(fp);
for (t = 0; t < 227; t++){ for (t = 0; t < 227; t++){
//MI_map_64Qam[0][t] = pow(10,0.1*(MI_map_64Qam[0][t])); //MI_map_64Qam[0][t] = pow(10,0.1*(MI_map_64Qam[0][t]));
printf("MIESM 64QAM Table: %lf %lf %1f\n ",MI_map_64qam[0][t],MI_map_64qam[1][t], MI_map_64qam[2][t]); LOG_D(OCM, "MIESM 64QAM Table: %lf %lf %1f\n ",MI_map_64qam[0][t],MI_map_64qam[1][t], MI_map_64qam[2][t]);
// printf("MIESM 64QAM Table: %lf %lf %1f\n ",MI_map_64qam[0][t],MI_map_64qam[1][t], MI_map_64qam[2][t]);
} }
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment