Commit d7cddc28 authored by Louis Adrien Dufrene's avatar Louis Adrien Dufrene

Bug fix of drx_config == PrNothing is now handled. Bug fix for dci0_ongoing...

Bug fix of drx_config == PrNothing is now handled. Bug fix for dci0_ongoing not working. To investigate
parent 4c931888
...@@ -1044,7 +1044,7 @@ void eNB_Config_Local_DRX( ...@@ -1044,7 +1044,7 @@ void eNB_Config_Local_DRX(
/* Check drx_Configuration */ /* Check drx_Configuration */
if (drx_Configuration == NULL) { if (drx_Configuration == NULL) {
LOG_E(MAC, "drx_Configuration parameter is NULL, cannot configure local UE parameters\n"); LOG_I(MAC, "drx_Configuration parameter is NULL, cannot configure local UE parameters\n");
UE_scheduling_control->cdrx_configured = FALSE; UE_scheduling_control->cdrx_configured = FALSE;
return; return;
......
...@@ -799,11 +799,11 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, ...@@ -799,11 +799,11 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
/* END VCD */ /* END VCD */
/* DCI0 ongoing timer */ /* DCI0 ongoing timer */
if (UE_scheduling_control->dci0_ongoing_timer > 1) { if (UE_scheduling_control->dci0_ongoing_timer > 0) {
UE_scheduling_control->dci0_ongoing_timer++; if (UE_scheduling_control->dci0_ongoing_timer > 7) {
if (UE_scheduling_control->dci0_ongoing_timer > 3) {
UE_scheduling_control->dci0_ongoing_timer = 0; UE_scheduling_control->dci0_ongoing_timer = 0;
} else {
UE_scheduling_control->dci0_ongoing_timer++;
} }
} }
......
...@@ -4953,7 +4953,9 @@ SR_indication(module_id_t mod_idP, ...@@ -4953,7 +4953,9 @@ SR_indication(module_id_t mod_idP,
if (UE_id != -1) { if (UE_id != -1) {
UE_scheduling_ctrl = &(UE_list->UE_sched_ctrl[UE_id]); UE_scheduling_ctrl = &(UE_list->UE_sched_ctrl[UE_id]);
if ((UE_scheduling_ctrl->cdrx_configured == TRUE) && (UE_scheduling_ctrl->dci0_ongoing_timer > 0)) { if ((UE_scheduling_ctrl->cdrx_configured == TRUE) &&
(UE_scheduling_ctrl->dci0_ongoing_timer > 4) &&
(UE_scheduling_ctrl->dci0_ongoing_timer < 8)) {
LOG_D(MAC, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d. \ LOG_D(MAC, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d. \
The SR is not set do to ongoing DCI0 with CDRX activated\n", The SR is not set do to ongoing DCI0 with CDRX activated\n",
mod_idP, mod_idP,
...@@ -4961,7 +4963,7 @@ SR_indication(module_id_t mod_idP, ...@@ -4961,7 +4963,7 @@ SR_indication(module_id_t mod_idP,
frameP, frameP,
subframeP, subframeP,
UE_id, UE_id,
cc_idP);) cc_idP);
} else { } else {
if (mac_eNB_get_rrc_status(mod_idP, UE_RNTI(mod_idP, UE_id)) < RRC_CONNECTED) { if (mac_eNB_get_rrc_status(mod_idP, UE_RNTI(mod_idP, UE_id)) < RRC_CONNECTED) {
LOG_D(MAC, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n", LOG_D(MAC, "[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n",
......
...@@ -241,6 +241,9 @@ rx_sdu(const module_id_t enb_mod_idP, ...@@ -241,6 +241,9 @@ rx_sdu(const module_id_t enb_mod_idP,
* Note: in case of asynchronous UL HARQ process restart here relevant RTT timer. * Note: in case of asynchronous UL HARQ process restart here relevant RTT timer.
* Start corresponding CDRX ULRetransmission timer. * Start corresponding CDRX ULRetransmission timer.
*/ */
unsigned long active_time_condition = 10;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_DRX_ACTIVE_TIME_CONDITION, (unsigned long) active_time_condition);
} }
first_rb = UE_template_ptr->first_rb_ul[harq_pid]; first_rb = UE_template_ptr->first_rb_ul[harq_pid];
......
...@@ -344,6 +344,10 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, ...@@ -344,6 +344,10 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id,
} else LOG_W(RRC,"[do_DrxConfig] No featureGroupIndicators pointer\n"); } else LOG_W(RRC,"[do_DrxConfig] No featureGroupIndicators pointer\n");
} else LOG_W(RRC,"[do_DrxConfig] No UEcap pointer\n"); } else LOG_W(RRC,"[do_DrxConfig] No UEcap pointer\n");
if (configuration->radioresourceconfig[CC_id].drx_Config_present == LTE_DRX_Config_PR_NOTHING) {
return NULL;
}
drxConfig = (LTE_DRX_Config_t *) malloc(sizeof(LTE_DRX_Config_t)); drxConfig = (LTE_DRX_Config_t *) malloc(sizeof(LTE_DRX_Config_t));
if (drxConfig == NULL) return NULL; if (drxConfig == NULL) return NULL;
memset(drxConfig, 0, sizeof(LTE_DRX_Config_t)); memset(drxConfig, 0, sizeof(LTE_DRX_Config_t));
...@@ -355,7 +359,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, ...@@ -355,7 +359,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id,
drxConfig->present = configuration->radioresourceconfig[CC_id].drx_Config_present; drxConfig->present = configuration->radioresourceconfig[CC_id].drx_Config_present;
} }
if (drxConfig->present != LTE_DRX_Config_PR_NOTHING) {
if (drxConfig->present == LTE_DRX_Config_PR_release) { if (drxConfig->present == LTE_DRX_Config_PR_release) {
drxConfig->choice.release = (NULL_t) 0; drxConfig->choice.release = (NULL_t) 0;
} else { } else {
...@@ -426,7 +429,7 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, ...@@ -426,7 +429,7 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id,
drxConfig->choice.setup.shortDRX->drxShortCycleTimer = configuration->radioresourceconfig[CC_id].drx_shortDrx_ShortCycleTimer; drxConfig->choice.setup.shortDRX->drxShortCycleTimer = configuration->radioresourceconfig[CC_id].drx_shortDrx_ShortCycleTimer;
} }
} }
}
return drxConfig; return drxConfig;
} }
......
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