Commit f77d01bc authored by lfarizav's avatar lfarizav

Solving a cell selection problem. However, it remains as a TODO (suggestion:...

Solving a cell selection problem. However, it remains as a TODO (suggestion: use mutex to avoid problems with ue->common_vars.eNb_id)
parent e6c41260
......@@ -763,7 +763,7 @@ void phy_config_harq_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
struct PhysicalConfigDedicated *physicalConfigDedicated )
{
//printf("phy_config_dedicated_ue: eNB_id %d\n",eNB_id);eNB_id=0
static uint8_t first_dedicated_configuration = 0;
PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id];
......@@ -781,7 +781,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = -1;
if (physicalConfigDedicated) {
LOG_D(PHY,"[UE %d] Received physicalConfigDedicated from eNB %d\n",Mod_id, eNB_id);
LOG_D(PHY,"[UE %d] Received physicalConfigDedicated from eNB %d\n",Mod_id, /*eNB_id*/phy_vars_ue->common_vars.eNb_id);
LOG_D(PHY,"------------------------------------------------------------------------\n");
if (physicalConfigDedicated->pdsch_ConfigDedicated) {
......@@ -870,7 +870,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
break;
}
} else {
LOG_D(PHY,"[UE %d] Received NULL physicalConfigDedicated->antennaInfo from eNB %d\n",Mod_id, eNB_id);
LOG_D(PHY,"[UE %d] Received NULL physicalConfigDedicated->antennaInfo from eNB %d\n",Mod_id, /*eNB_id*/phy_vars_ue->common_vars.eNb_id);
}
if (physicalConfigDedicated->schedulingRequestConfig) {
......@@ -947,7 +947,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
#endif
} else {
LOG_D(PHY,"[PHY][UE %d] Received NULL radioResourceConfigDedicated from eNB %d\n",Mod_id,eNB_id);
LOG_D(PHY,"[PHY][UE %d] Received NULL radioResourceConfigDedicated from eNB %d\n",Mod_id,/*eNB_id*/phy_vars_ue->common_vars.eNb_id);
return;
}
......
......@@ -1402,7 +1402,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
}
void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t abstraction_flag,runmode_t mode) {
printf("ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d\n",ue->Mod_id,eNB_id,ue->common_vars.eNb_id,ue->mac_enabled==1);
//printf("ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d\n",ue->Mod_id,eNB_id,ue->common_vars.eNb_id,ue->mac_enabled==1);=0
int frame_tx = proc->frame_tx;
int subframe_tx = proc->subframe_tx;
int prach_power;
......@@ -2423,7 +2423,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
}
count++;
clock_t start=clock();*/
//printf("phy_procedures_UE_TX: eNB_id %d\n",eNB_id);
LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms;
//int32_t ulsch_start=0;
int subframe_tx = proc->subframe_tx;
......@@ -2635,7 +2635,7 @@ void ue_measurement_procedures(
{
//LOG_I(PHY,"ue_measurement_procedures l %d Ncp %d\n",l,ue->frame_parms.Ncp);
//printf("ue_measurement_procedures: ue->do_ofdm_mod %d\n",ue->do_ofdm_mod);
LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms;
int subframe_rx = proc->subframe_rx;
......@@ -2729,7 +2729,7 @@ void ue_measurement_procedures(
if (abstraction_flag == 0) {
if (ue->no_timing_correction==0)
if (!ue->do_ofdm_mod)
if (!ue->do_ofdm_mod){
lte_adjust_synch(&ue->frame_parms,
ue,
eNB_id,
......@@ -2737,6 +2737,7 @@ void ue_measurement_procedures(
0,
16384);
}
}
}
......@@ -2901,7 +2902,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
{
//printf("PBCH: id %d\n",ue->Mod_id);
// int i;
//printf("ue_pbch_procedures: eNB_id %d, ue->common_vars.eNb.id %d\n",eNB_id,ue->common_vars.eNb_id);
//printf("ue_pbch_procedures: eNB_id %d, ue->common_vars.eNb.id %d\n",eNB_id,ue->common_vars.eNb_id);=0
int pbch_tx_ant=0;
uint8_t pbch_phase;
uint16_t frame_tx;
......@@ -3080,7 +3081,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
ue->pbch_vars[eNB_id]->pdu_errors_conseq++;
ue->pbch_vars[eNB_id]->pdu_errors++;
if (ue->mac_enabled == 1) {
mac_xface->out_of_sync_ind(ue->Mod_id,frame_rx,ue->common_vars.eNb_id);
mac_xface->out_of_sync_ind(ue->Mod_id,frame_rx,eNB_id);
}
else{
if (ue->pbch_vars[eNB_id]->pdu_errors_conseq>=100) {
......@@ -3106,7 +3107,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t abstraction_flag)
{
//printf("ue_pdcch_procedures: eNB_id %d, ue->common_vars.eNb.id %d\n",eNB_id,ue->common_vars.eNb_id);
//printf("ue_pdcch_procedures: eNB_id %d, ue->common_vars.eNb.id %d\n",eNB_id,ue->common_vars.eNb_id);=0
unsigned int dci_cnt=0, i;
int frame_rx = proc->frame_rx;
......@@ -3821,7 +3822,11 @@ void process_rar(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, runmode_t mo
uint8_t *rar;
uint8_t next1_thread_id = ue->current_thread_id[subframe_rx]== (RX_NB_TH-1) ? 0:(ue->current_thread_id[subframe_rx]+1);
uint8_t next2_thread_id = next1_thread_id== (RX_NB_TH-1) ? 0:(next1_thread_id+1);
//printf("process_rar: eNB_id %d\n",eNB_id);=0
//printf("[UE %d][RAPROC] Frame %d subframe %d Received RAR mode %d\n",
//ue->Mod_id,
//frame_rx,
//subframe_rx, ue->UE_mode[eNB_id]);
LOG_D(PHY,"[UE %d][RAPROC] Frame %d subframe %d Received RAR mode %d\n",
ue->Mod_id,
frame_rx,
......@@ -3831,6 +3836,7 @@ void process_rar(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, runmode_t mo
if (ue->mac_enabled == 1) {
if ((ue->UE_mode[eNB_id] != PUSCH) &&
(ue->prach_resources[eNB_id]->Msg3!=NULL)) {
LOG_D(PHY,"[UE %d][RAPROC] Frame %d subframe %d Invoking MAC for RAR (current preamble %d)\n",
ue->Mod_id,frame_rx,
subframe_rx,
......@@ -3857,6 +3863,7 @@ void process_rar(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, runmode_t mo
ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti,
timing_advance);
printf("process_rar: ue->mac_enabled %d, (ue->UE_mode[eNB_id] != PUSCH) %d, ue->prach_resources[eNB_id]->Msg3!=NULL %d, timing advance %d\n",ue->mac_enabled,(ue->UE_mode[eNB_id] != PUSCH),ue->prach_resources[eNB_id]->Msg3!=NULL,timing_advance);
// remember this c-rnti is still a tc-rnti
ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti_is_temporary = 1;
......@@ -5425,7 +5432,7 @@ else
if ( (subframe_rx == 0) && (ue->decode_MIB == 1))
{
printf("[ue_pbch_procedures] subframe_rx %d ,ue->decode_MIB %d, UE %d, eNB %d\n",subframe_rx,ue->decode_MIB,ue->Mod_id,ue->common_vars.eNb_id);
printf("[ue_pbch_procedures] subframe_rx %d ,ue->decode_MIB %d, UE %d, eNB_id %d, ue->common_vars.eNb_id %d\n",subframe_rx,ue->decode_MIB,ue->Mod_id,eNB_id,ue->common_vars.eNb_id);
ue_pbch_procedures(eNB_id,ue,proc,abstraction_flag);
}
......@@ -5696,7 +5703,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
ue->UE_mode[eNB_id]=PUSCH;
}
printf("phy_procedures_UE_lte: eNB_id %d\n",eNB_id);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,1);
#if UE_TIMING_TRACE
start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
......
......@@ -48,11 +48,12 @@
#include "MBSFN-SubframeConfigList.h"
#include "PMCH-InfoList-r9.h"
#endif
#include "PHY/extern.h"
/* sec 5.9, 36.321: MAC Reset Procedure */
void ue_mac_reset(module_id_t module_idP,uint8_t eNB_index)
{
printf("ue_mac_reset: eNB_index %d, common_vars.eNb_id %d\n",eNB_index,PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id);
//Resetting Bj
UE_mac_inst[module_idP].scheduling_info.Bj[0] = 0;
UE_mac_inst[module_idP].scheduling_info.Bj[1] = 0;
......@@ -121,7 +122,7 @@ rrc_mac_config_req(
#endif
)
{
printf("rrc_mac_config_reg: eNB_index %d\n",eNB_index);
printf("rrc_mac_config_reg: eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id
int i;
int UE_id = -1;
......@@ -147,7 +148,7 @@ rrc_mac_config_req(
if (tdd_Config && SIwindowsize && SIperiod) {
if (eNB_flagP == ENB_FLAG_YES) {
mac_xface->phy_config_sib1_eNB(Mod_idP, CC_idP, tdd_Config, *SIwindowsize, *SIperiod);//not necessary to change
mac_xface->phy_config_sib1_eNB(Mod_idP, CC_idP, tdd_Config, *SIwindowsize, *SIperiod);
} else {
mac_xface->phy_config_sib1_ue(Mod_idP,0,eNB_index,tdd_Config,*SIwindowsize,*SIperiod);//not necessary to change
}
......
......@@ -108,7 +108,7 @@ void get_prach_resources(module_id_t module_idP,
uint8_t first_Msg3,
RACH_ConfigDedicated_t *rach_ConfigDedicated)
{
printf("get_prach_resources: eNB_index %d\n",eNB_index);
uint8_t Msg3_size = UE_mac_inst[module_idP].RA_Msg3_size;
PRACH_RESOURCES_t *prach_resources = &UE_mac_inst[module_idP].RA_prach_resources;
RACH_ConfigCommon_t *rach_ConfigCommon = NULL;
......@@ -210,7 +210,7 @@ void get_prach_resources(module_id_t module_idP,
UE_mac_inst[module_idP].RA_prach_resources.ra_RACH_MaskIndex = 0;
UE_mac_inst[module_idP].RA_usedGroupA = 1;
} else if ((Msg3_size <messageSizeGroupA) ||
(mac_xface->get_PL(module_idP,0,eNB_index) > PLThreshold)) {//not necessary to change
(mac_xface->get_PL(module_idP,0,eNB_index) > PLThreshold)) {//not necessary to change eNB_index=0
// use Group A procedure
UE_mac_inst[module_idP].RA_prach_resources.ra_PreambleIndex = (taus())%sizeOfRA_PreamblesGroupA;
UE_mac_inst[module_idP].RA_prach_resources.ra_RACH_MaskIndex = 0;
......@@ -307,9 +307,9 @@ void Msg3_tx(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id
PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_indexP,sub_frame_t subframeP)
{
printf("ue_get_rach: eNB_indexP %d\n",eNB_indexP);//eNB_indexP=0
uint8_t Size=0;
UE_MODE_t UE_mode = mac_xface->get_ue_mode(module_idP,0,eNB_indexP);
UE_MODE_t UE_mode = mac_xface->get_ue_mode(module_idP,0,eNB_indexP);//eNB_indexP=0
uint8_t lcid = CCCH;
uint16_t Size16;
struct RACH_ConfigCommon *rach_ConfigCommon = (struct RACH_ConfigCommon *)NULL;
......@@ -376,7 +376,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
UE_mac_inst[module_idP].RA_backoff_frame = frameP;
UE_mac_inst[module_idP].RA_backoff_subframe = subframeP;
// Fill in preamble and PRACH resource
get_prach_resources(module_idP,CC_id,eNB_indexP,subframeP,1,NULL);//not necessary change eNB_indexP by PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id
get_prach_resources(module_idP,CC_id,eNB_indexP,subframeP,1,NULL);//not necessary change. //eNB_indexP=0
generate_ulsch_header((uint8_t*)&UE_mac_inst[module_idP].CCCH_pdu.payload[0], // mac header
1, // num sdus
......
......@@ -379,7 +379,7 @@ ue_send_sdu(
if (payload_ptr != NULL) {
for (i=0; i<num_ce; i++) {
// printf("ce %d : %d\n",i,rx_ces[i]);
printf("ue_send_sdu: ce %d : %d\n",i,rx_ces[i]);
switch (rx_ces[i]) {
case UE_CONT_RES:
......@@ -1836,7 +1836,7 @@ ue_scheduler(
const int CC_id)
//------------------------------------------------------------------------------
{
//printf("ue_scheduler: eNB_indexp %d, PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id %d \n",eNB_indexP,PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id);
printf("ue_scheduler: UE %d, eNB_indexp %d, PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id %d \n",module_idP,eNB_indexP,PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id);
int lcid; // lcid index
int TTI= 1;
int bucketsizeduration = -1;
......@@ -1870,6 +1870,7 @@ ue_scheduler(
switch (ITTI_MSG_ID(msg_p)) {
case RRC_MAC_CCCH_DATA_REQ:
//printf("ue_scheduler:(msg_p).enb_index %d\n",RRC_MAC_CCCH_DATA_REQ (msg_p).enb_index);=0 or 1
LOG_I(MAC, "Received %s from %s: instance %d, frameP %d, eNB_index %d\n",
msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance,
RRC_MAC_CCCH_DATA_REQ (msg_p).frame, RRC_MAC_CCCH_DATA_REQ (msg_p).enb_index);
......
......@@ -927,7 +927,7 @@ pdcp_run (
RRC_DCCH_DATA_REQ (msg_p).frame,
0,
RRC_DCCH_DATA_REQ (msg_p).eNB_index);
//printf("pdcp_run:RRC_DCCH_DATA_REQ: eNB %d, rnti %d\n",RRC_DCCH_DATA_REQ (msg_p).eNB_index,RRC_DCCH_DATA_REQ (msg_p).rnti);
printf("pdcp_run:RRC_DCCH_DATA_REQ: eNB %d, rnti %x\n",RRC_DCCH_DATA_REQ (msg_p).eNB_index,RRC_DCCH_DATA_REQ (msg_p).rnti);
LOG_I(PDCP, PROTOCOL_CTXT_FMT"Received %s from %s: instance %d, rb_id %d, muiP %d, confirmP %d, mode %d\n",
PROTOCOL_CTXT_ARGS(&ctxt),
msg_name,
......
......@@ -51,7 +51,7 @@ extern UE_MAC_INST *UE_mac_inst;
#if defined(ENABLE_ITTI)
# include "intertask_interface.h"
#endif
#include "PHY/extern.h"
//#define RRC_DATA_REQ_DEBUG
#define DEBUG_RRC 1
......@@ -72,7 +72,7 @@ mac_rrc_data_req(
)
//--------------------------------------------------------------------------
{
printf("mac_rrc_data_req:eNB_index %d\n",eNB_index);
printf("mac_rrc_data_req:eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id
SRB_INFO *Srb_info;
uint8_t Sdu_size=0;
......@@ -348,7 +348,7 @@ mac_rrc_data_ind(
SRB_INFO *Srb_info;
protocol_ctxt_t ctxt;
sdu_size_t sdu_size = 0;
//printf("mac_rrc_data_ind\n");
printf("mac_rrc_data_ind: eNB_indexP %d\n",eNB_indexP);//eNB_index=ue->common_vars.enb_id
/* for no gcc warnings */
(void)sdu_size;
......@@ -652,7 +652,7 @@ rrc_data_ind(
void rrc_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index)
{
//-------------------------------------------------------------------------------------------//
printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);
printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_id
#if defined(ENABLE_ITTI)
{
MessageDef *message_p;
......@@ -677,14 +677,14 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);
void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index)
{
//-------------------------------------------------------------------------------------------//
printf("rrc_out_of_sync_ind:eNB_index %d\n",eNB_index);
if (UE_rrc_inst[Mod_idP].Info[eNB_index].N310_cnt>10)
printf("rrc_out_of_sync_ind:eNB_index %d\n",/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id);
if (UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt>10)
LOG_I(RRC,"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T310 active %d : T310 %d, N310 %d, N311 %d)\n ",
Mod_idP,frameP,eNB_index,
UE_rrc_inst[Mod_idP].Info[eNB_index].T300_active,
UE_rrc_inst[Mod_idP].Info[eNB_index].T310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index].N310_cnt,
UE_rrc_inst[Mod_idP].Info[eNB_index].N311_cnt);
Mod_idP,frameP,/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].T300_active,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].T310_cnt,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt,
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N311_cnt);
#if defined(ENABLE_ITTI)
{
......@@ -692,12 +692,12 @@ void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index
message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_OUT_OF_SYNC_IND);
RRC_MAC_OUT_OF_SYNC_IND (message_p).frame = frameP;
RRC_MAC_OUT_OF_SYNC_IND (message_p).enb_index = eNB_index;
RRC_MAC_OUT_OF_SYNC_IND (message_p).enb_index = /*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id;
itti_send_msg_to_task (TASK_RRC_UE, UE_MODULE_ID_TO_INSTANCE(Mod_idP), message_p);
}
#else
UE_rrc_inst[Mod_idP].Info[eNB_index].N310_cnt++;
UE_rrc_inst[Mod_idP].Info[/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id].N310_cnt++;
#endif
}
......@@ -767,10 +767,10 @@ int
mac_UE_get_rrc_status(
const module_id_t Mod_idP,
const uint8_t indexP
printf("mac_UE_get_rrc_status:eNB_index %d\n",eNB_index);
)
//------------------------------------------------------------------------------
{
printf("mac_UE_get_rrc_status:eNB_index %d\n",indexP);
return(UE_rrc_inst[Mod_idP].Info[indexP].State);
}
......
......@@ -310,7 +310,7 @@ static void openair_rrc_ue_init_security( const protocol_ctxt_t* const ctxt_pP )
//-----------------------------------------------------------------------------
char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_index )
{
protocol_ctxt_t ctxt;
protocol_ctxt_t ctxt;//eNb_id=0,1
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, NOT_A_RNTI, 0, 0,eNB_index);
LOG_I(RRC,
PROTOCOL_RRC_CTXT_FMT" Init...\n",
......@@ -363,7 +363,7 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_
//-----------------------------------------------------------------------------
void rrc_ue_generate_RRCConnectionRequest( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index )
{
//eNB_index=ue->common_vars.enb_id
uint8_t i=0,rv[6];
if(UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.payload_size ==0) {
......@@ -439,7 +439,7 @@ static const char const nas_attach_req_guti[] = {
//-----------------------------------------------------------------------------
static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id )
{
//eNB_index=ue->common_vars.enb_id
uint8_t buffer[100];
uint8_t size;
const char * nas_msg;
......@@ -473,7 +473,7 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* c
//-----------------------------------------------------------------------------
static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id )
{
//eNB_index=ue->common_vars.enb_id
uint8_t buffer[32], size;
size = do_RRCConnectionReconfigurationComplete(ctxt_pP, buffer, Transaction_id);
LOG_I(RRC,PROTOCOL_RRC_CTXT_UE_FMT" Logical Channel UL-DCCH (SRB1), Generating RRCConnectionReconfigurationComplete (bytes %d, eNB_index %d)\n",
......@@ -502,6 +502,7 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol
// Called by L2 interface (MAC)
int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* const Srb_info, const uint8_t eNB_index )
{
printf("rrc_ue_decode_ccch: eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id
DL_CCCH_Message_t* dl_ccch_msg=NULL;
asn_dec_rval_t dec_rval;
int rval=0;
......@@ -1192,7 +1193,7 @@ rrc_ue_process_radioResourceConfigDedicated(
)
//-----------------------------------------------------------------------------
{
//eNB_index=ue->common_vars.enb_id
long SRB_id,DRB_id;
int i,cnt;
LogicalChannelConfig_t *SRB1_logicalChannelConfig,*SRB2_logicalChannelConfig;
......@@ -1560,7 +1561,7 @@ rrc_ue_process_securityModeCommand(
)
//-----------------------------------------------------------------------------
{
//eNB_index=ue->common_vars.enb_id
asn_enc_rval_t enc_rval;
UL_DCCH_Message_t ul_dcch_msg;
......@@ -1758,7 +1759,7 @@ rrc_ue_process_ueCapabilityEnquiry(
)
//-----------------------------------------------------------------------------
{
//eNB_index=ue->common_vars.enb_id
asn_enc_rval_t enc_rval;
UL_DCCH_Message_t ul_dcch_msg;
......@@ -1866,7 +1867,7 @@ rrc_ue_process_rrcConnectionReconfiguration(
)
//-----------------------------------------------------------------------------
{
//eNB_index=ue->common_vars.enb_id
LOG_I(RRC,"[UE %d] Frame %d: Receiving from SRB1 (DL-DCCH), Processing RRCConnectionReconfiguration (eNB %d)\n",
ctxt_pP->module_id,ctxt_pP->frame,eNB_index);
......@@ -2126,7 +2127,7 @@ rrc_ue_decode_dcch(
)
//-----------------------------------------------------------------------------
{
printf("rrc_ue_decode_dcch: eNB_indexP %d\n",eNB_indexP);
printf("rrc_ue_decode_dcch: eNB_indexP %d\n",eNB_indexP);//eNB_indexP=ue->common_vars.enb_id
//DL_DCCH_Message_t dldcchmsg;
DL_DCCH_Message_t *dl_dcch_msg=NULL;//&dldcchmsg;
// asn_dec_rval_t dec_rval;
......@@ -2643,7 +2644,7 @@ int decode_BCCH_DLSCH_Message(
const uint8_t rsrq,
const uint8_t rsrp )
{
//printf("decode_BCCH_DLSCH_Message: eNB_index %d\n",eNB_index);
//printf("decode_BCCH_DLSCH_Message: eNB_index %d\n",eNB_index);//eNB_index=ue->common_vars.enb_id
BCCH_DL_SCH_Message_t *bcch_message = NULL;
SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index];
//int i;
......@@ -2853,7 +2854,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
LOG_I( RRC, "Found Unknown operator (no entry in internal table)\n" );
}
LOG_I( RRC, "cellAccessRelatedInfo.cellIdentity : raw:%"PRIu32" decoded:%02x.%02x.%02x.%02x\n",
BIT_STRING_to_uint32( &sib1->cellAccessRelatedInfo.cellIdentity)+eNB_index,
BIT_STRING_to_uint32( &sib1->cellAccessRelatedInfo.cellIdentity)/*+eNB_index*/,
sib1->cellAccessRelatedInfo.cellIdentity.buf[0],
sib1->cellAccessRelatedInfo.cellIdentity.buf[1],
sib1->cellAccessRelatedInfo.cellIdentity.buf[2],
......@@ -2996,7 +2997,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_CELL_SELECTION_CNF);
NAS_CELL_SELECTION_CNF (msg_p).errCode = AS_SUCCESS;
NAS_CELL_SELECTION_CNF (msg_p).cellID = BIT_STRING_to_uint32(&sib1->cellAccessRelatedInfo.cellIdentity)+eNB_index;
NAS_CELL_SELECTION_CNF (msg_p).cellID = BIT_STRING_to_uint32(&sib1->cellAccessRelatedInfo.cellIdentity)/*+eNB_index*/;
NAS_CELL_SELECTION_CNF (msg_p).tac = BIT_STRING_to_uint16(&sib1->cellAccessRelatedInfo.trackingAreaCode);
NAS_CELL_SELECTION_CNF (msg_p).rat = 0xFF;
NAS_CELL_SELECTION_CNF (msg_p).rsrq = rsrq;
......@@ -4326,7 +4327,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
// PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
//printf("decode_BCCH_DLSCH_Message for ue %d, enb %d \n",ue_mod_id,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
printf("decode_BCCH_DLSCH_Message for ue %d, enb %d \n",ue_mod_id,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);//RRC_MAC_BCCH_DATA_IND (msg_p).enb_index=ue->common_vars.enb_id
decode_BCCH_DLSCH_Message (&ctxt,
RRC_MAC_BCCH_DATA_IND (msg_p).enb_index,
RRC_MAC_BCCH_DATA_IND (msg_p).sdu,
......
......@@ -408,7 +408,7 @@ rrc_rx_tx(
//-----------------------------------------------------------------------------
{
//uint8_t UE_id;
//printf("rrc_rx_tx: enb_indexP %d\n",enb_indexP);
printf("rrc_rx_tx: enb_indexP %d\n",enb_indexP);
int32_t current_timestamp_ms, ref_timestamp_ms;
struct timeval ts;
struct rrc_eNB_ue_context_s *ue_context_p = NULL,*ue_to_be_removed = NULL;
......
......@@ -223,7 +223,7 @@ eNBs =
uplink_frequency_offset = -120000000;
Nid_cell = 1;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
Nid_cell_mbsfn = 1;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
......
......@@ -841,7 +841,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
start_meas(&UE->generic_stat);
#endif
if (UE->mac_enabled==1) {
printf("UE_thread_rxn_txnp4: eNB_id %d, common_vars.enb_id %d, UE %d\n",0,PHY_vars_UE_g[UE->Mod_id][0]->common_vars.eNb_id,UE->Mod_id);
ret = mac_xface->ue_scheduler(UE->Mod_id,
proc->frame_rx,
proc->subframe_rx,
......
......@@ -1537,20 +1537,19 @@ void init_openair1(void)
}
}
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
for (UE_id=0; UE_id<NB_UE_INST; UE_id++) {
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_ACK_Index = beta_ACK;
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_RI_Index = beta_RI;
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_CQI_Index = beta_CQI;
PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.pdsch_config_common.p_b = (frame_parms[CC_id]->nb_antenna_ports_eNB>1) ? 1 : 0; // rho_A = rho_B
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index = beta_ACK;
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_RI_Index = beta_RI;
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index = beta_CQI;
PHY_vars_UE_g[UE_id][CC_id]->frame_parms.pdsch_config_common.p_b = (frame_parms[CC_id]->nb_antenna_ports_eNB>1) ? 1 : 0; // rho_A = rho_B
}
}
PHY_vars_UE_g[UE_id][0]->pusch_config_dedicated[0].betaOffset_ACK_Index = beta_ACK;
PHY_vars_UE_g[UE_id][0]->pusch_config_dedicated[0].betaOffset_RI_Index = beta_RI;
PHY_vars_UE_g[UE_id][0]->pusch_config_dedicated[0].betaOffset_CQI_Index = beta_CQI;
PHY_vars_UE_g[UE_id][0]->frame_parms.pdsch_config_common.p_b = (frame_parms[0]->nb_antenna_ports_eNB>1) ? 1 : 0; // rho_A = rho_B
}
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++)
printf ("AFTER init: MAX_NUM_CCs %d, Nid_cell %d frame_type %d,tdd_config %d\n",
......@@ -1630,7 +1629,7 @@ void init_openair1(void)
PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB=100;
// update UE_mode for each eNB_id not just 0
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++){
//for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++){
if (abstraction_flag == 0) {
if (phy_test==0) PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = NOT_SYNCHED;
else PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PUSCH;
......@@ -1638,22 +1637,22 @@ void init_openair1(void)
// 0 is the index of the connected eNB
PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PRACH;
}
}
//}
if (phy_test==1)
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=0;
else
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=1;
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++){
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[0][eNB_id]->crnti = 0x1235 + UE_id;
//for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++){
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[0][0]->crnti = 0x1235 + UE_id;
for (uint8_t i=0; i<RX_NB_TH_MAX; i++) {
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[i][eNB_id]->dciFormat = 0;
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[i][eNB_id]->agregationLevel = 0xFF;
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[i][0]->dciFormat = 0;
PHY_vars_UE_g[UE_id][CC_id]->pdcch_vars[i][0]->agregationLevel = 0xFF;
}
PHY_vars_UE_g[UE_id][CC_id]->current_dlsch_cqi[eNB_id] = 10;
PHY_vars_UE_g[UE_id][CC_id]->current_dlsch_cqi[0] = 10;
LOG_I(EMU, "eNB_id %d, UE %d, CC %d, mode is initialized to %d\n", eNB_id, UE_id, CC_id, PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] );
}
LOG_I(EMU, "eNB_id %d, UE %d, CC %d, mode is initialized to %d\n",PHY_vars_UE_g[UE_id][CC_id]->common_vars.eNb_id, UE_id, CC_id, PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] );
//}
#if ENABLE_RAL
PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_timed = hashtable_create (64, NULL, NULL);
......@@ -1867,7 +1866,7 @@ void update_omg_ocm()
ue_node_list=get_current_positions(oai_emulation.info.omg_model_ue, UE, oai_emulation.info.time_s);
}
static int firt_cell_association=1;
void update_ocm()
{
module_id_t UE_id, eNB_id;
......@@ -1897,6 +1896,8 @@ void update_ocm()
/* if (frame % 50 == 0)
LOG_N(OCM,"Path loss for TTI %d : \n", frame);
*/
if (firt_cell_association){
firt_cell_association=0;//TODO This static variable is just for static users. If it is necessary to consider mobile UEs, this hack should be reconsidered, or consider a mutex solution for this for
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
......@@ -1924,6 +1925,7 @@ void update_ocm()
}
}
}
}
else {
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
......
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