set back rrc as a separate thread, lead to create back race conditions
This commit is contained in:
@@ -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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user