Grouped all ITTI tasks creation in the same place.
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4585 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
+73
-43
@@ -375,38 +375,7 @@ static s32 UE_id = 0, eNB_id = 0;
|
|||||||
static s32 RN_id=0;
|
static s32 RN_id=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
static void *l2l1_task(void *args_p) {
|
||||||
int itti_create_task_successful(void){
|
|
||||||
# if defined(ENABLE_USE_MME)
|
|
||||||
if (itti_create_task(TASK_SCTP, sctp_eNB_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing SCTP task interface: FAILED\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (itti_create_task(TASK_S1AP, s1ap_eNB_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing S1AP task interface: FAILED\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
if (itti_create_task(TASK_L2L1, l2l1_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing L2L1 task interface: FAILED\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Last task to create, others task must be ready before its start */
|
|
||||||
if (itti_create_task(TASK_ENB_APP, eNB_app_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing eNB APP task interface: FAILED\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void *l2l1_task(void *args_p) {
|
|
||||||
// Framing variables
|
// Framing variables
|
||||||
s32 slot, last_slot, next_slot;
|
s32 slot, last_slot, next_slot;
|
||||||
|
|
||||||
@@ -423,14 +392,16 @@ void *l2l1_task(void *args_p) {
|
|||||||
|
|
||||||
itti_mark_task_ready (TASK_L2L1);
|
itti_mark_task_ready (TASK_L2L1);
|
||||||
|
|
||||||
/* Wait for the initialize message */
|
if (NB_eNB_INST > 0) {
|
||||||
do {
|
/* Wait for the initialize message */
|
||||||
if (message_p != NULL) {
|
do {
|
||||||
free (message_p);
|
if (message_p != NULL) {
|
||||||
}
|
free (message_p);
|
||||||
itti_receive_msg (TASK_L2L1, &message_p);
|
}
|
||||||
} while (ITTI_MSG_ID(message_p) != INITIALIZE_MESSAGE);
|
itti_receive_msg (TASK_L2L1, &message_p);
|
||||||
free (message_p);
|
} while (ITTI_MSG_ID(message_p) != INITIALIZE_MESSAGE);
|
||||||
|
free (message_p);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (frame = 0; frame < oai_emulation.info.n_frames; frame++) {
|
for (frame = 0; frame < oai_emulation.info.n_frames; frame++) {
|
||||||
@@ -869,6 +840,64 @@ void *l2l1_task(void *args_p) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
static int create_tasks(void) {
|
||||||
|
# if defined(ENABLE_USE_MME)
|
||||||
|
{
|
||||||
|
if (NB_eNB_INST > 0) {
|
||||||
|
if (itti_create_task(TASK_SCTP, sctp_eNB_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing SCTP task interface: FAILED\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itti_create_task(TASK_S1AP, s1ap_eNB_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing S1AP task interface: FAILED\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef OPENAIR2
|
||||||
|
{
|
||||||
|
if (NB_eNB_INST > 0) {
|
||||||
|
if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing RRC eNB task interface: FAILED\n");
|
||||||
|
exit (-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NB_UE_INST > 0) {
|
||||||
|
if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing RRC UE task interface: FAILED\n");
|
||||||
|
exit (-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
if (itti_create_task(TASK_L2L1, l2l1_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing L2L1 task interface: FAILED\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NB_eNB_INST > 0) {
|
||||||
|
/* Last task to create, others task must be ready before its start */
|
||||||
|
if (itti_create_task(TASK_ENB_APP, eNB_app_task, NULL) < 0) {
|
||||||
|
LOG_E(EMU, "Create task failed");
|
||||||
|
LOG_D(EMU, "Initializing eNB APP task interface: FAILED\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
Packet_OTG_List *otg_pdcp_buffer;
|
Packet_OTG_List *otg_pdcp_buffer;
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
@@ -1054,10 +1083,11 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
// Handle signals until all tasks are terminated
|
// Handle signals until all tasks are terminated
|
||||||
if (itti_create_task_successful())
|
if (create_tasks() >= 0) {
|
||||||
itti_wait_tasks_end();
|
itti_wait_tasks_end();
|
||||||
else
|
} else {
|
||||||
exit(-1); // need a softer mode
|
exit(-1); // need a softer mode
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
eNB_app_task(NULL); // do nothing for the moment
|
eNB_app_task(NULL); // do nothing for the moment
|
||||||
l2l1_task (NULL);
|
l2l1_task (NULL);
|
||||||
|
|||||||
@@ -42,10 +42,6 @@ void calc_path_loss(node_desc_t* node_tx, node_desc_t* node_rx, channel_desc_t *
|
|||||||
|
|
||||||
void do_OFDM_mod(mod_sym_t **txdataF, s32 **txdata, uint32_t frame, u16 next_slot, LTE_DL_FRAME_PARMS *frame_parms);
|
void do_OFDM_mod(mod_sym_t **txdataF, s32 **txdata, uint32_t frame, u16 next_slot, LTE_DL_FRAME_PARMS *frame_parms);
|
||||||
|
|
||||||
#ifdef ENABLE_ITTI
|
|
||||||
int itti_create_task_successful(void);
|
|
||||||
void *l2l1_task(void *args_p);
|
|
||||||
#endif
|
|
||||||
#ifdef OPENAIR2
|
#ifdef OPENAIR2
|
||||||
int omv_write (int pfd, Node_list enb_node_list, Node_list ue_node_list, Data_Flow_Unit omv_data);
|
int omv_write (int pfd, Node_list enb_node_list, Node_list ue_node_list, Data_Flow_Unit omv_data);
|
||||||
void omv_end (int pfd, Data_Flow_Unit omv_data);
|
void omv_end (int pfd, Data_Flow_Unit omv_data);
|
||||||
|
|||||||
@@ -589,24 +589,6 @@ void init_openair2() {
|
|||||||
s32 i;
|
s32 i;
|
||||||
s32 UE_id;
|
s32 UE_id;
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
|
||||||
if (NB_eNB_INST > 0) {
|
|
||||||
if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing RRC eNB task interface: FAILED\n");
|
|
||||||
exit (-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NB_UE_INST > 0) {
|
|
||||||
if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) {
|
|
||||||
LOG_E(EMU, "Create task failed");
|
|
||||||
LOG_D(EMU, "Initializing RRC UE task interface: FAILED\n");
|
|
||||||
exit (-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
l2_init (&PHY_vars_eNB_g[0]->lte_frame_parms,
|
l2_init (&PHY_vars_eNB_g[0]->lte_frame_parms,
|
||||||
oai_emulation.info.eMBMS_active_state,
|
oai_emulation.info.eMBMS_active_state,
|
||||||
oai_emulation.info.cba_group_active,
|
oai_emulation.info.cba_group_active,
|
||||||
|
|||||||
Reference in New Issue
Block a user