Commit 6215df1a authored by laurent's avatar laurent

set back rrc as a separate thread, lead to create back race conditions

parent f934a9b2
...@@ -288,7 +288,7 @@ void * rrc_enb_process_msg(void*); ...@@ -288,7 +288,7 @@ void * rrc_enb_process_msg(void*);
TASK_DEF(TASK_PDCP_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_PDCP_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_DATA_FORWARDING, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_DATA_FORWARDING, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_END_MARKER, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_END_MARKER, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200, rrc_enb_process_msg,NULL)\ TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200, NULL,NULL)\
TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL,NULL)\ TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL,NULL)\
TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
......
...@@ -8884,29 +8884,26 @@ void *rrc_enb_process_itti_msg(void *notUsed) { ...@@ -8884,29 +8884,26 @@ void *rrc_enb_process_itti_msg(void *notUsed) {
return NULL; return NULL;
} }
// as there are race conditions, no rrc thread
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void * void *
rrc_enb_process_msg( rrc_enb_task(
void *args_p void *args_p
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
rrc_enb_init();
itti_mark_task_ready(TASK_RRC_ENB);
LOG_I(RRC,"Entering main loop of RRC message task\n");
//while (1) { while (1) {
//(void) rrc_enb_process_itti_msg(NULL);
//}
//while (1) {
(void) rrc_enb_process_itti_msg(NULL); (void) rrc_enb_process_itti_msg(NULL);
{ {
//extern volatile int go_nr; //extern volatile int go_nr;
void rrc_go_nr(void); void rrc_go_nr(void);
//if (go_nr) rrc_go_nr(); //if (go_nr) rrc_go_nr();
} }
//} }
return NULL;
} }
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
......
...@@ -56,9 +56,9 @@ int create_tasks(uint32_t enb_nb) { ...@@ -56,9 +56,9 @@ int create_tasks(uint32_t enb_nb) {
rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL); rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL);
AssertFatal(rc >= 0, "Create task for eNB APP failed\n"); AssertFatal(rc >= 0, "Create task for eNB APP failed\n");
// No more rrc thread, as many race conditions are hidden behind LOG_I(RRC,"Creating RRC eNB Task\n");
rrc_enb_init(); rc = itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL);
itti_mark_task_ready(TASK_RRC_ENB); AssertFatal(rc >= 0, "Create task for RRC eNB failed\n");
if (EPC_MODE_ENABLED && ! ( split73==SPLIT73_DU ) ) { if (EPC_MODE_ENABLED && ! ( split73==SPLIT73_DU ) ) {
rc = itti_create_task(TASK_SCTP, sctp_eNB_task, NULL); rc = itti_create_task(TASK_SCTP, sctp_eNB_task, NULL);
......
...@@ -446,9 +446,12 @@ int restart_L1L2(module_id_t enb_id) { ...@@ -446,9 +446,12 @@ int restart_L1L2(module_id_t enb_id) {
init_UE_info(&RC.mac[enb_id]->UE_info); init_UE_info(&RC.mac[enb_id]->UE_info);
LOG_I(ENB_APP, "attempting to create ITTI tasks\n"); LOG_I(ENB_APP, "attempting to create ITTI tasks\n");
// No more rrc thread, as many race conditions are hidden behind if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) {
rrc_enb_init(); LOG_E(RRC, "Create task for RRC eNB failed\n");
itti_mark_task_ready(TASK_RRC_ENB); return -1;
} else {
LOG_I(RRC, "Re-created task for RRC eNB successfully\n");
}
/* pass a reconfiguration request which will configure everything down to /* pass a reconfiguration request which will configure everything down to
* RC.eNB[i][j]->frame_parms, too */ * RC.eNB[i][j]->frame_parms, too */
......
...@@ -541,12 +541,6 @@ void init_pdcp(void) { ...@@ -541,12 +541,6 @@ void init_pdcp(void) {
pdcp_set_pdcp_data_ind_func((pdcp_data_ind_func_t) pdcp_data_ind); pdcp_set_pdcp_data_ind_func((pdcp_data_ind_func_t) pdcp_data_ind);
} }
// Stupid function addition because UE itti messages queues definition is common with eNB
void *rrc_enb_process_msg(void *notUsed) {
AssertFatal(false,"");
return NULL;
}
int main( int argc, char **argv ) { int main( int argc, char **argv ) {
int CC_id; int CC_id;
uint8_t abstraction_flag=0; uint8_t abstraction_flag=0;
......
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