Commit c6d30be9 authored by Vaibhav Shrivastava's avatar Vaibhav Shrivastava Committed by jperaldi

Changes for physicialConfigdedicated crash for 6.1.2.3 in VTP disable mode

parent 84b9097e
...@@ -116,7 +116,7 @@ void schedule_SRS(module_id_t module_idP, ...@@ -116,7 +116,7 @@ void schedule_SRS(module_id_t module_idP,
if ((1 << tmp) & deltaTSFC) { if ((1 << tmp) & deltaTSFC) {
/* This is an SRS subframe, loop over UEs */ /* This is an SRS subframe, loop over UEs */
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (!UE_info->active[UE_id]) { if (!UE_info->active[CC_id][UE_id]) {
continue; continue;
} }
...@@ -126,8 +126,8 @@ void schedule_SRS(module_id_t module_idP, ...@@ -126,8 +126,8 @@ void schedule_SRS(module_id_t module_idP,
} }
if(UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated == NULL) { if(UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated == NULL) {
LOG_E(MAC,"physicalConfigDedicated is null for UE %d\n",UE_id); LOG_E(MAC,"physicalConfigDedicated is null for UE %d, CC_id: %d\n",UE_id,CC_id);
printf("physicalConfigDedicated is null for UE %d\n",UE_id); printf("physicalConfigDedicated is null for UE %d, CC_id: %d \n",UE_id,CC_id);
return; return;
} }
...@@ -204,7 +204,7 @@ void schedule_CSI(module_id_t module_idP, ...@@ -204,7 +204,7 @@ void schedule_CSI(module_id_t module_idP,
cc = &eNB->common_channels[CC_id]; cc = &eNB->common_channels[CC_id];
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (UE_info->active[UE_id] == FALSE) { if (UE_info->active[CC_id][UE_id] == FALSE) {
continue; continue;
} }
...@@ -214,8 +214,8 @@ void schedule_CSI(module_id_t module_idP, ...@@ -214,8 +214,8 @@ void schedule_CSI(module_id_t module_idP,
} }
AssertFatal(UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated != NULL, AssertFatal(UE_info->UE_template[CC_id][UE_id].physicalConfigDedicated != NULL,
"physicalConfigDedicated is null for UE %d\n", "physicalConfigDedicated is null for UE %d, CC_id: %d\n",
UE_id); UE_id,CC_id);
/* /*
* CDRX condition on Active Time and CSI report on PUCCH (36.321 5.7). * CDRX condition on Active Time and CSI report on PUCCH (36.321 5.7).
* Here we consider classic periodic reports on PUCCH without PUSCH simultaneous transmission condition. * Here we consider classic periodic reports on PUCCH without PUSCH simultaneous transmission condition.
...@@ -319,7 +319,7 @@ schedule_SR (module_id_t module_idP, ...@@ -319,7 +319,7 @@ schedule_SR (module_id_t module_idP,
eNB->UL_req[CC_id].sfn_sf = (frameP << 4) + subframeP; eNB->UL_req[CC_id].sfn_sf = (frameP << 4) + subframeP;
for (int UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (int UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (!UE_info->active[UE_id]) { if (!UE_info->active[CC_id][UE_id]) {
continue; continue;
} }
...@@ -626,7 +626,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, ...@@ -626,7 +626,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
/* Refresh UE list based on UEs dropped by PHY in previous subframe */ /* Refresh UE list based on UEs dropped by PHY in previous subframe */
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (UE_info->active[UE_id]) { if (UE_info->active[CC_id][UE_id]) {
rnti = UE_RNTI(module_idP, UE_id); rnti = UE_RNTI(module_idP, UE_id);
CC_id = UE_PCCID(module_idP, UE_id); CC_id = UE_PCCID(module_idP, UE_id);
UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]); UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]);
......
...@@ -210,7 +210,7 @@ void dlsch_scheduler_pre_ue_select_fairRR( ...@@ -210,7 +210,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
DL_req = &eNB->DL_req[CC_id].dl_config_request_body; DL_req = &eNB->DL_req[CC_id].dl_config_request_body;
for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) {
if (UE_info->active[UE_id] == FALSE) { if (UE_info->active[CC_id][UE_id] == FALSE) {
continue; continue;
} }
...@@ -331,7 +331,7 @@ void dlsch_scheduler_pre_ue_select_fairRR( ...@@ -331,7 +331,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
break; break;
} }
if (UE_info->active[UE_id] == FALSE) { if (UE_info->active[CC_id][UE_id] == FALSE) {
continue; continue;
} }
...@@ -459,7 +459,7 @@ void dlsch_scheduler_pre_ue_select_fairRR( ...@@ -459,7 +459,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
break; break;
} }
if (UE_info->active[UE_id] == FALSE) { if (UE_info->active[CC_id][UE_id] == FALSE) {
continue; continue;
} }
...@@ -607,7 +607,7 @@ static void dlsch_scheduler_pre_processor_reset_fairRR( ...@@ -607,7 +607,7 @@ static void dlsch_scheduler_pre_processor_reset_fairRR(
if (rnti == NOT_A_RNTI) if (rnti == NOT_A_RNTI)
continue; continue;
if (UE_info->active[UE_id] != TRUE) if (UE_info->active[CC_id][UE_id] != TRUE)
continue; continue;
LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti); LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti);
...@@ -755,7 +755,7 @@ static void assign_rbs_required_fairRR( ...@@ -755,7 +755,7 @@ static void assign_rbs_required_fairRR(
// clear rb allocations across all CC_id // clear rb allocations across all CC_id
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (UE_info->active[UE_id] != TRUE) if (UE_info->active[CC_id][UE_id] != TRUE)
continue; continue;
pCCid = UE_PCCID(Mod_id, UE_id); pCCid = UE_PCCID(Mod_id, UE_id);
...@@ -945,7 +945,7 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id, ...@@ -945,7 +945,7 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
min_rb_unit[CC_id] = get_min_rb_unit(Mod_id, CC_id); min_rb_unit[CC_id] = get_min_rb_unit(Mod_id, CC_id);
for (i = 0; i < NUMBER_OF_UE_MAX; i++) { for (i = 0; i < NUMBER_OF_UE_MAX; i++) {
if (UE_info->active[i] != TRUE) if (UE_info->active[CC_id][i] != TRUE)
continue; continue;
UE_id = i; UE_id = i;
...@@ -2241,7 +2241,7 @@ void ulsch_scheduler_pre_ue_select_fairRR( ...@@ -2241,7 +2241,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
// UE round >0 // UE round >0
for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) { for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) {
if (UE_info->active[UE_id] == FALSE) if (UE_info->active[CC_id][UE_id] == FALSE)
continue; continue;
rnti = UE_RNTI(module_idP,UE_id); rnti = UE_RNTI(module_idP,UE_id);
...@@ -2401,7 +2401,7 @@ void ulsch_scheduler_pre_ue_select_fairRR( ...@@ -2401,7 +2401,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
} }
for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) { for ( UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++ ) {
if (UE_info->active[UE_id] == FALSE) if (UE_info->active[CC_id][UE_id] == FALSE)
continue; continue;
rnti = UE_RNTI(module_idP,UE_id); rnti = UE_RNTI(module_idP,UE_id);
......
...@@ -1989,8 +1989,8 @@ find_UE_id(module_id_t mod_idP, ...@@ -1989,8 +1989,8 @@ find_UE_id(module_id_t mod_idP,
return -1; return -1;
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (UE_info->active[UE_id] == TRUE) { int CC_id = UE_PCCID(mod_idP, UE_id);
int CC_id = UE_PCCID(mod_idP, UE_id); if (UE_info->active[CC_id][UE_id] == TRUE) {
if (CC_id>=0 && CC_id<NFAPI_CC_MAX && UE_info->UE_template[CC_id][UE_id].rnti == rntiP) { if (CC_id>=0 && CC_id<NFAPI_CC_MAX && UE_info->UE_template[CC_id][UE_id].rnti == rntiP) {
return UE_id; return UE_id;
} }
...@@ -2187,7 +2187,7 @@ add_new_ue(module_id_t mod_idP, ...@@ -2187,7 +2187,7 @@ add_new_ue(module_id_t mod_idP,
UE_info->num_UEs); UE_info->num_UEs);
for (i = 0; i < MAX_MOBILES_PER_ENB; i++) { for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
if (UE_info->active[i] == TRUE) if (UE_info->active[cc_idP][i] == TRUE)
continue; continue;
UE_id = i; UE_id = i;
...@@ -2200,7 +2200,7 @@ add_new_ue(module_id_t mod_idP, ...@@ -2200,7 +2200,7 @@ add_new_ue(module_id_t mod_idP,
UE_info->ordered_CCids[0][UE_id] = cc_idP; UE_info->ordered_CCids[0][UE_id] = cc_idP;
UE_info->ordered_ULCCids[0][UE_id] = cc_idP; UE_info->ordered_ULCCids[0][UE_id] = cc_idP;
UE_info->num_UEs++; UE_info->num_UEs++;
UE_info->active[UE_id] = TRUE; UE_info->active[cc_idP][UE_id] = TRUE;
add_ue_list(&UE_info->list, UE_id); add_ue_list(&UE_info->list, UE_id);
dump_ue_list(&UE_info->list); dump_ue_list(&UE_info->list);
pp_impl_param_t* dl = &RC.mac[mod_idP]->pre_processor_dl; pp_impl_param_t* dl = &RC.mac[mod_idP]->pre_processor_dl;
...@@ -2280,7 +2280,7 @@ rrc_mac_remove_ue(module_id_t mod_idP, ...@@ -2280,7 +2280,7 @@ rrc_mac_remove_ue(module_id_t mod_idP,
UE_id, UE_id,
pCC_id, pCC_id,
rntiP); rntiP);
UE_info->active[UE_id] = FALSE; UE_info->active[pCC_id][UE_id] = FALSE;
UE_info->num_UEs--; UE_info->num_UEs--;
remove_ue_list(&UE_info->list, UE_id); remove_ue_list(&UE_info->list, UE_id);
......
...@@ -1185,7 +1185,7 @@ typedef struct { ...@@ -1185,7 +1185,7 @@ typedef struct {
UE_sched_ctrl_t UE_sched_ctrl[MAX_MOBILES_PER_ENB]; UE_sched_ctrl_t UE_sched_ctrl[MAX_MOBILES_PER_ENB];
UE_list_t list; UE_list_t list;
int num_UEs; int num_UEs;
boolean_t active[MAX_MOBILES_PER_ENB]; boolean_t active[MAX_NUM_CCs][MAX_MOBILES_PER_ENB];
} UE_info_t; } UE_info_t;
/*! \brief deleting control information*/ /*! \brief deleting control information*/
......
...@@ -56,9 +56,9 @@ void *mac_stats_thread(void *param) { ...@@ -56,9 +56,9 @@ void *mac_stats_thread(void *param) {
AssertFatal(fd!=NULL,"Cannot open MAC_stats.log\n"); AssertFatal(fd!=NULL,"Cannot open MAC_stats.log\n");
for (int UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) { for (int UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; UE_id++) {
if (UE_info->active[UE_id]) { int CC_id = UE_PCCID(mac->Mod_id, UE_id);
if (UE_info->active[CC_id][UE_id]) {
int rnti = UE_RNTI(mac->Mod_id, UE_id); int rnti = UE_RNTI(mac->Mod_id, UE_id);
int CC_id = UE_PCCID(mac->Mod_id, UE_id);
UE_sched_ctrl_t *UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]); UE_sched_ctrl_t *UE_scheduling_control = &(UE_info->UE_sched_ctrl[UE_id]);
double total_bler; double total_bler;
......
...@@ -638,7 +638,7 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id, ...@@ -638,7 +638,7 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
LOG_E(MAC, "UE %d has RNTI NOT_A_RNTI!\n", UE_id); LOG_E(MAC, "UE %d has RNTI NOT_A_RNTI!\n", UE_id);
continue; continue;
} }
if (UE_info->active[UE_id] != TRUE) { if (UE_info->active[CC_id][UE_id] != TRUE) {
LOG_E(MAC, "UE %d RNTI %x is NOT active!\n", UE_id, rnti); LOG_E(MAC, "UE %d RNTI %x is NOT active!\n", UE_id, rnti);
continue; continue;
} }
......
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