diff --git a/executables/nr-uesoftmodem.c b/executables/nr-uesoftmodem.c index 4e5e1a19f9..dabb0bc8e2 100644 --- a/executables/nr-uesoftmodem.c +++ b/executables/nr-uesoftmodem.c @@ -453,6 +453,7 @@ int main(int argc, char **argv) init_pdcp(0); else init_pdcp(mode_offset + ue_id_g); + nas_init_nrue(NB_UE_INST); init_NR_UE(NB_UE_INST, get_nrUE_params()->uecap_file, get_nrUE_params()->reconfig_file, get_nrUE_params()->rbconfig_file); diff --git a/openair3/NAS/NR_UE/nr_nas_msg.c b/openair3/NAS/NR_UE/nr_nas_msg.c index 59d646e3df..1199aad94b 100644 --- a/openair3/NAS/NR_UE/nr_nas_msg.c +++ b/openair3/NAS/NR_UE/nr_nas_msg.c @@ -1210,11 +1210,6 @@ static int get_user_nssai_idx(const nr_nas_msg_snssai_t allowed_nssai[8], const void *nas_nrue_task(void *args_p) { - for (int UE_id = 0; UE_id < NB_UE_INST; UE_id++) { - // This sets UE uicc from command line. Needs to be called 2 seconds into nr-ue runtime, otherwise the unused command line - // arguments will be reported as unused and the modem asserts. - (void)get_ue_nas_info(UE_id); - } while (1) { nas_nrue(NULL); } @@ -1453,3 +1448,9 @@ void *nas_nrue(void *args_p) } return NULL; } + +void nas_init_nrue(int num_ues) { + for (int i = 0; i < num_ues; i++) { + (void)get_ue_nas_info(i); + } +} diff --git a/openair3/NAS/NR_UE/nr_nas_msg.h b/openair3/NAS/NR_UE/nr_nas_msg.h index 2e687baf8f..e10ac54b0f 100644 --- a/openair3/NAS/NR_UE/nr_nas_msg.h +++ b/openair3/NAS/NR_UE/nr_nas_msg.h @@ -160,5 +160,6 @@ nr_ue_nas_t *get_ue_nas_info(module_id_t module_id); void generateRegistrationRequest(as_nas_info_t *initialNasMsg, nr_ue_nas_t *nas); void *nas_nrue_task(void *args_p); void *nas_nrue(void *args_p); +void nas_init_nrue(int num_ues); #endif /* __NR_NAS_MSG_SIM_H__*/