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, ...@@ -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, void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
struct PhysicalConfigDedicated *physicalConfigDedicated ) struct PhysicalConfigDedicated *physicalConfigDedicated )
{ {
//printf("phy_config_dedicated_ue: eNB_id %d\n",eNB_id);eNB_id=0
static uint8_t first_dedicated_configuration = 0; static uint8_t first_dedicated_configuration = 0;
PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id]; 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, ...@@ -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; phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = -1;
if (physicalConfigDedicated) { 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"); LOG_D(PHY,"------------------------------------------------------------------------\n");
if (physicalConfigDedicated->pdsch_ConfigDedicated) { if (physicalConfigDedicated->pdsch_ConfigDedicated) {
...@@ -870,7 +870,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, ...@@ -870,7 +870,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
break; break;
} }
} else { } 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) { if (physicalConfigDedicated->schedulingRequestConfig) {
...@@ -947,7 +947,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, ...@@ -947,7 +947,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
#endif #endif
} else { } 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; return;
} }
......
...@@ -1402,7 +1402,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt ...@@ -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) { 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 frame_tx = proc->frame_tx;
int subframe_tx = proc->subframe_tx; int subframe_tx = proc->subframe_tx;
int prach_power; 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 ...@@ -2423,7 +2423,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
} }
count++; count++;
clock_t start=clock();*/ clock_t start=clock();*/
//printf("phy_procedures_UE_TX: eNB_id %d\n",eNB_id);
LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms; LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms;
//int32_t ulsch_start=0; //int32_t ulsch_start=0;
int subframe_tx = proc->subframe_tx; int subframe_tx = proc->subframe_tx;
...@@ -2635,7 +2635,7 @@ void ue_measurement_procedures( ...@@ -2635,7 +2635,7 @@ void ue_measurement_procedures(
{ {
//LOG_I(PHY,"ue_measurement_procedures l %d Ncp %d\n",l,ue->frame_parms.Ncp); //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; LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms;
int subframe_rx = proc->subframe_rx; int subframe_rx = proc->subframe_rx;
...@@ -2729,13 +2729,14 @@ void ue_measurement_procedures( ...@@ -2729,13 +2729,14 @@ void ue_measurement_procedures(
if (abstraction_flag == 0) { if (abstraction_flag == 0) {
if (ue->no_timing_correction==0) if (ue->no_timing_correction==0)
if (!ue->do_ofdm_mod) if (!ue->do_ofdm_mod){
lte_adjust_synch(&ue->frame_parms, lte_adjust_synch(&ue->frame_parms,
ue, ue,
eNB_id, eNB_id,
subframe_rx, subframe_rx,
0, 0,
16384); 16384);
}
} }
} }
...@@ -2901,7 +2902,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin ...@@ -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); //printf("PBCH: id %d\n",ue->Mod_id);
// int i; // 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; int pbch_tx_ant=0;
uint8_t pbch_phase; uint8_t pbch_phase;
uint16_t frame_tx; 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 ...@@ -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_conseq++;
ue->pbch_vars[eNB_id]->pdu_errors++; ue->pbch_vars[eNB_id]->pdu_errors++;
if (ue->mac_enabled == 1) { 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{ else{
if (ue->pbch_vars[eNB_id]->pdu_errors_conseq>=100) { 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 ...@@ -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) 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; unsigned int dci_cnt=0, i;
int frame_rx = proc->frame_rx; 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 ...@@ -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 *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 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); 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", LOG_D(PHY,"[UE %d][RAPROC] Frame %d subframe %d Received RAR mode %d\n",
ue->Mod_id, ue->Mod_id,
frame_rx, frame_rx,
...@@ -3831,6 +3836,7 @@ void process_rar(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, runmode_t mo ...@@ -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->mac_enabled == 1) {
if ((ue->UE_mode[eNB_id] != PUSCH) && if ((ue->UE_mode[eNB_id] != PUSCH) &&
(ue->prach_resources[eNB_id]->Msg3!=NULL)) { (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", LOG_D(PHY,"[UE %d][RAPROC] Frame %d subframe %d Invoking MAC for RAR (current preamble %d)\n",
ue->Mod_id,frame_rx, ue->Mod_id,frame_rx,
subframe_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 ...@@ -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, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti,
timing_advance); 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 // remember this c-rnti is still a tc-rnti
ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti_is_temporary = 1; ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti_is_temporary = 1;
...@@ -5425,7 +5432,7 @@ else ...@@ -5425,7 +5432,7 @@ else
if ( (subframe_rx == 0) && (ue->decode_MIB == 1)) 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); 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 ...@@ -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; 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); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,1);
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]); start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
......
...@@ -48,11 +48,12 @@ ...@@ -48,11 +48,12 @@
#include "MBSFN-SubframeConfigList.h" #include "MBSFN-SubframeConfigList.h"
#include "PMCH-InfoList-r9.h" #include "PMCH-InfoList-r9.h"
#endif #endif
#include "PHY/extern.h"
/* sec 5.9, 36.321: MAC Reset Procedure */ /* sec 5.9, 36.321: MAC Reset Procedure */
void ue_mac_reset(module_id_t module_idP,uint8_t eNB_index) 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 //Resetting Bj
UE_mac_inst[module_idP].scheduling_info.Bj[0] = 0; UE_mac_inst[module_idP].scheduling_info.Bj[0] = 0;
UE_mac_inst[module_idP].scheduling_info.Bj[1] = 0; UE_mac_inst[module_idP].scheduling_info.Bj[1] = 0;
...@@ -121,7 +122,7 @@ rrc_mac_config_req( ...@@ -121,7 +122,7 @@ rrc_mac_config_req(
#endif #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 i;
int UE_id = -1; int UE_id = -1;
...@@ -147,7 +148,7 @@ rrc_mac_config_req( ...@@ -147,7 +148,7 @@ rrc_mac_config_req(
if (tdd_Config && SIwindowsize && SIperiod) { if (tdd_Config && SIwindowsize && SIperiod) {
if (eNB_flagP == ENB_FLAG_YES) { 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 { } else {
mac_xface->phy_config_sib1_ue(Mod_idP,0,eNB_index,tdd_Config,*SIwindowsize,*SIperiod);//not necessary to change 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, ...@@ -108,7 +108,7 @@ void get_prach_resources(module_id_t module_idP,
uint8_t first_Msg3, uint8_t first_Msg3,
RACH_ConfigDedicated_t *rach_ConfigDedicated) 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; 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; PRACH_RESOURCES_t *prach_resources = &UE_mac_inst[module_idP].RA_prach_resources;
RACH_ConfigCommon_t *rach_ConfigCommon = NULL; RACH_ConfigCommon_t *rach_ConfigCommon = NULL;
...@@ -210,7 +210,7 @@ void get_prach_resources(module_id_t module_idP, ...@@ -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_prach_resources.ra_RACH_MaskIndex = 0;
UE_mac_inst[module_idP].RA_usedGroupA = 1; UE_mac_inst[module_idP].RA_usedGroupA = 1;
} else if ((Msg3_size <messageSizeGroupA) || } 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 // 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_PreambleIndex = (taus())%sizeOfRA_PreamblesGroupA;
UE_mac_inst[module_idP].RA_prach_resources.ra_RACH_MaskIndex = 0; 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 ...@@ -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) 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; 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; uint8_t lcid = CCCH;
uint16_t Size16; uint16_t Size16;
struct RACH_ConfigCommon *rach_ConfigCommon = (struct RACH_ConfigCommon *)NULL; 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, ...@@ -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_frame = frameP;
UE_mac_inst[module_idP].RA_backoff_subframe = subframeP; UE_mac_inst[module_idP].RA_backoff_subframe = subframeP;
// Fill in preamble and PRACH resource // 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 generate_ulsch_header((uint8_t*)&UE_mac_inst[module_idP].CCCH_pdu.payload[0], // mac header
1, // num sdus 1, // num sdus
......
...@@ -379,7 +379,7 @@ ue_send_sdu( ...@@ -379,7 +379,7 @@ ue_send_sdu(
if (payload_ptr != NULL) { if (payload_ptr != NULL) {
for (i=0; i<num_ce; i++) { 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]) { switch (rx_ces[i]) {
case UE_CONT_RES: case UE_CONT_RES:
...@@ -1836,7 +1836,7 @@ ue_scheduler( ...@@ -1836,7 +1836,7 @@ ue_scheduler(
const int CC_id) 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 lcid; // lcid index
int TTI= 1; int TTI= 1;
int bucketsizeduration = -1; int bucketsizeduration = -1;
...@@ -1870,6 +1870,7 @@ ue_scheduler( ...@@ -1870,6 +1870,7 @@ ue_scheduler(
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case RRC_MAC_CCCH_DATA_REQ: 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", LOG_I(MAC, "Received %s from %s: instance %d, frameP %d, eNB_index %d\n",
msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance, 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); RRC_MAC_CCCH_DATA_REQ (msg_p).frame, RRC_MAC_CCCH_DATA_REQ (msg_p).enb_index);
......
...@@ -927,7 +927,7 @@ pdcp_run ( ...@@ -927,7 +927,7 @@ pdcp_run (
RRC_DCCH_DATA_REQ (msg_p).frame, RRC_DCCH_DATA_REQ (msg_p).frame,
0, 0,
RRC_DCCH_DATA_REQ (msg_p).eNB_index); 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", 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), PROTOCOL_CTXT_ARGS(&ctxt),
msg_name, msg_name,
......
...@@ -51,7 +51,7 @@ extern UE_MAC_INST *UE_mac_inst; ...@@ -51,7 +51,7 @@ extern UE_MAC_INST *UE_mac_inst;
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
# include "intertask_interface.h" # include "intertask_interface.h"
#endif #endif
#include "PHY/extern.h"
//#define RRC_DATA_REQ_DEBUG //#define RRC_DATA_REQ_DEBUG
#define DEBUG_RRC 1 #define DEBUG_RRC 1
...@@ -72,7 +72,7 @@ mac_rrc_data_req( ...@@ -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; SRB_INFO *Srb_info;
uint8_t Sdu_size=0; uint8_t Sdu_size=0;
...@@ -348,7 +348,7 @@ mac_rrc_data_ind( ...@@ -348,7 +348,7 @@ mac_rrc_data_ind(
SRB_INFO *Srb_info; SRB_INFO *Srb_info;
protocol_ctxt_t ctxt; protocol_ctxt_t ctxt;
sdu_size_t sdu_size = 0; 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 */ /* for no gcc warnings */
(void)sdu_size; (void)sdu_size;
...@@ -652,7 +652,7 @@ rrc_data_ind( ...@@ -652,7 +652,7 @@ rrc_data_ind(
void rrc_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index) 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) #if defined(ENABLE_ITTI)
{ {
MessageDef *message_p; MessageDef *message_p;
...@@ -677,14 +677,14 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index); ...@@ -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) 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); 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].N310_cnt>10) 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 ", 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, Mod_idP,frameP,/*eNB_index*/PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id,
UE_rrc_inst[Mod_idP].Info[eNB_index].T300_active, 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].T310_cnt, 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].N310_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].N311_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) #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 ...@@ -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); 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).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); itti_send_msg_to_task (TASK_RRC_UE, UE_MODULE_ID_TO_INSTANCE(Mod_idP), message_p);
} }
#else #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 #endif
} }
...@@ -767,10 +767,10 @@ int ...@@ -767,10 +767,10 @@ int
mac_UE_get_rrc_status( mac_UE_get_rrc_status(
const module_id_t Mod_idP, const module_id_t Mod_idP,
const uint8_t indexP 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); 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 ) ...@@ -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 ) 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); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, NOT_A_RNTI, 0, 0,eNB_index);
LOG_I(RRC, LOG_I(RRC,
PROTOCOL_RRC_CTXT_FMT" Init...\n", 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_ ...@@ -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 ) 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]; uint8_t i=0,rv[6];
if(UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.payload_size ==0) { 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[] = { ...@@ -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 ) 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 buffer[100];
uint8_t size; uint8_t size;
const char * nas_msg; const char * nas_msg;
...@@ -473,7 +473,7 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* c ...@@ -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 ) 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; uint8_t buffer[32], size;
size = do_RRCConnectionReconfigurationComplete(ctxt_pP, buffer, Transaction_id); 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", 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 ...@@ -502,6 +502,7 @@ static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol
// Called by L2 interface (MAC) // 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 ) 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; DL_CCCH_Message_t* dl_ccch_msg=NULL;
asn_dec_rval_t dec_rval; asn_dec_rval_t dec_rval;
int rval=0; int rval=0;
...@@ -1192,7 +1193,7 @@ rrc_ue_process_radioResourceConfigDedicated( ...@@ -1192,7 +1193,7 @@ rrc_ue_process_radioResourceConfigDedicated(
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
//eNB_index=ue->common_vars.enb_id
long SRB_id,DRB_id; long SRB_id,DRB_id;
int i,cnt; int i,cnt;
LogicalChannelConfig_t *SRB1_logicalChannelConfig,*SRB2_logicalChannelConfig; LogicalChannelConfig_t *SRB1_logicalChannelConfig,*SRB2_logicalChannelConfig;
...@@ -1560,7 +1561,7 @@ rrc_ue_process_securityModeCommand( ...@@ -1560,7 +1561,7 @@ rrc_ue_process_securityModeCommand(
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
//eNB_index=ue->common_vars.enb_id
asn_enc_rval_t enc_rval; asn_enc_rval_t enc_rval;
UL_DCCH_Message_t ul_dcch_msg; UL_DCCH_Message_t ul_dcch_msg;
...@@ -1758,7 +1759,7 @@ rrc_ue_process_ueCapabilityEnquiry( ...@@ -1758,7 +1759,7 @@ rrc_ue_process_ueCapabilityEnquiry(
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
//eNB_index=ue->common_vars.enb_id
asn_enc_rval_t enc_rval; asn_enc_rval_t enc_rval;
UL_DCCH_Message_t ul_dcch_msg; UL_DCCH_Message_t ul_dcch_msg;
...@@ -1866,7 +1867,7 @@ rrc_ue_process_rrcConnectionReconfiguration( ...@@ -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", 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); ctxt_pP->module_id,ctxt_pP->frame,eNB_index);
...@@ -2126,7 +2127,7 @@ rrc_ue_decode_dcch( ...@@ -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 dldcchmsg;
DL_DCCH_Message_t *dl_dcch_msg=NULL;//&dldcchmsg; DL_DCCH_Message_t *dl_dcch_msg=NULL;//&dldcchmsg;
// asn_dec_rval_t dec_rval; // asn_dec_rval_t dec_rval;
...@@ -2643,7 +2644,7 @@ int decode_BCCH_DLSCH_Message( ...@@ -2643,7 +2644,7 @@ int decode_BCCH_DLSCH_Message(
const uint8_t rsrq, const uint8_t rsrq,
const uint8_t rsrp ) 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; BCCH_DL_SCH_Message_t *bcch_message = NULL;
SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index];
//int i; //int i;
...@@ -2853,7 +2854,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ ...@@ -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, "Found Unknown operator (no entry in internal table)\n" );
} }
LOG_I( RRC, "cellAccessRelatedInfo.cellIdentity : raw:%"PRIu32" decoded:%02x.%02x.%02x.%02x\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[0],
sib1->cellAccessRelatedInfo.cellIdentity.buf[1], sib1->cellAccessRelatedInfo.cellIdentity.buf[1],
sib1->cellAccessRelatedInfo.cellIdentity.buf[2], sib1->cellAccessRelatedInfo.cellIdentity.buf[2],
...@@ -2996,7 +2997,7 @@ static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ ...@@ -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); 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).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).tac = BIT_STRING_to_uint16(&sib1->cellAccessRelatedInfo.trackingAreaCode);
NAS_CELL_SELECTION_CNF (msg_p).rat = 0xFF; NAS_CELL_SELECTION_CNF (msg_p).rat = 0xFF;
NAS_CELL_SELECTION_CNF (msg_p).rsrq = rsrq; 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 ...@@ -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_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); 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, decode_BCCH_DLSCH_Message (&ctxt,
RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index,
RRC_MAC_BCCH_DATA_IND (msg_p).sdu, RRC_MAC_BCCH_DATA_IND (msg_p).sdu,
......
...@@ -408,7 +408,7 @@ rrc_rx_tx( ...@@ -408,7 +408,7 @@ rrc_rx_tx(
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
//uint8_t UE_id; //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; int32_t current_timestamp_ms, ref_timestamp_ms;
struct timeval ts; struct timeval ts;
struct rrc_eNB_ue_context_s *ue_context_p = NULL,*ue_to_be_removed = NULL; struct rrc_eNB_ue_context_s *ue_context_p = NULL,*ue_to_be_removed = NULL;
......
...@@ -223,7 +223,7 @@ eNBs = ...@@ -223,7 +223,7 @@ eNBs =
uplink_frequency_offset = -120000000; uplink_frequency_offset = -120000000;
Nid_cell = 1; Nid_cell = 1;
N_RB_DL = 25; N_RB_DL = 25;
Nid_cell_mbsfn = 0; Nid_cell_mbsfn = 1;
nb_antenna_ports = 1; nb_antenna_ports = 1;
nb_antennas_tx = 1; nb_antennas_tx = 1;
nb_antennas_rx = 1; nb_antennas_rx = 1;
......
...@@ -841,7 +841,7 @@ static void *UE_thread_rxn_txnp4(void *arg) { ...@@ -841,7 +841,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
start_meas(&UE->generic_stat); start_meas(&UE->generic_stat);
#endif #endif
if (UE->mac_enabled==1) { 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, ret = mac_xface->ue_scheduler(UE->Mod_id,
proc->frame_rx, proc->frame_rx,
proc->subframe_rx, proc->subframe_rx,
......
...@@ -1537,20 +1537,19 @@ void init_openair1(void) ...@@ -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 (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++) { 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_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_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]->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_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++) 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", 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) ...@@ -1630,7 +1629,7 @@ void init_openair1(void)
PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB=100; PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB=100;
// update UE_mode for each eNB_id not just 0 // 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 (abstraction_flag == 0) {
if (phy_test==0) PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = NOT_SYNCHED; 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; else PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PUSCH;
...@@ -1638,22 +1637,22 @@ void init_openair1(void) ...@@ -1638,22 +1637,22 @@ void init_openair1(void)
// 0 is the index of the connected eNB // 0 is the index of the connected eNB
PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PRACH; PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PRACH;
} }
} //}
if (phy_test==1) if (phy_test==1)
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=0; PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=0;
else else
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=1; PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=1;
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++){ //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; 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++) { 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][0]->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]->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 #if ENABLE_RAL
PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_timed = hashtable_create (64, NULL, NULL); PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_timed = hashtable_create (64, NULL, NULL);
...@@ -1867,7 +1866,7 @@ void update_omg_ocm() ...@@ -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); 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() void update_ocm()
{ {
module_id_t UE_id, eNB_id; module_id_t UE_id, eNB_id;
...@@ -1897,6 +1896,8 @@ void update_ocm() ...@@ -1897,6 +1896,8 @@ void update_ocm()
/* if (frame % 50 == 0) /* if (frame % 50 == 0)
LOG_N(OCM,"Path loss for TTI %d : \n", frame); 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 (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) { for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) { for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
...@@ -1923,6 +1924,7 @@ void update_ocm() ...@@ -1923,6 +1924,7 @@ void update_ocm()
printf("UE %d is associated to eNB %d based on pathloss (%s domain)\n",UE_id,PHY_vars_UE_g[UE_id][CC_id]->common_vars.eNb_id,(PHY_vars_UE_g[UE_id][CC_id]->do_ofdm_mod)?"Frequency":"Time"); printf("UE %d is associated to eNB %d based on pathloss (%s domain)\n",UE_id,PHY_vars_UE_g[UE_id][CC_id]->common_vars.eNb_id,(PHY_vars_UE_g[UE_id][CC_id]->do_ofdm_mod)?"Frequency":"Time");
} }
} }
}
} }
else { else {
......
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