diff --git a/openair3/NAS/TOOLS/conf2uedata.c b/openair3/NAS/TOOLS/conf2uedata.c index a9eb8ef797ed015e4da684d32ddff550fcd5aedd..3a783c2fe389d0cb6f2bd65784a638bce2675313 100644 --- a/openair3/NAS/TOOLS/conf2uedata.c +++ b/openair3/NAS/TOOLS/conf2uedata.c @@ -12,18 +12,13 @@ #include "conf_user_data.h" #include "conf_usim.h" -int *ucplmn = NULL; -int *oplmn = NULL; -int *ocplmn = NULL; -int *fplmn = NULL; -int *ehplmn = NULL; +plmns_list ucplmns; +plmns_list oplmns; +plmns_list ocplmns; +plmns_list fplmns; +plmns_list ehplmns; int plmn_nb = 0; -int ucplmn_nb = 0; -int oplmn_nb = 0; -int ocplmn_nb = 0; -int fplmn_nb = 0; -int ehplmn_nb = 0; plmn_conf_param_t* user_plmn_list=NULL; network_record_t* user_network_record_list = NULL; @@ -241,15 +236,15 @@ int parse_ue_plmn_param(config_setting_t *ue_setting, int user_id, const char ** return EXIT_FAILURE; } - if ( parse_Xplmn(ue_setting, UCPLMN, user_id, &ucplmn_nb, &ucplmn) == EXIT_FAILURE ) + if ( parse_Xplmn(ue_setting, UCPLMN, user_id, &ucplmns) == EXIT_FAILURE ) nb_errors++; - if ( parse_Xplmn(ue_setting, OPLMN, user_id, &oplmn_nb, &oplmn) == EXIT_FAILURE ) + if ( parse_Xplmn(ue_setting, OPLMN, user_id, &oplmns) == EXIT_FAILURE ) nb_errors++; - if ( parse_Xplmn(ue_setting, OCPLMN, user_id, &ocplmn_nb, &ocplmn) == EXIT_FAILURE ) + if ( parse_Xplmn(ue_setting, OCPLMN, user_id, &ocplmns) == EXIT_FAILURE ) nb_errors++; - if ( parse_Xplmn(ue_setting, FPLMN, user_id, &fplmn_nb, &fplmn) == EXIT_FAILURE ) + if ( parse_Xplmn(ue_setting, FPLMN, user_id, &fplmns) == EXIT_FAILURE ) nb_errors++; - if ( parse_Xplmn(ue_setting, EHPLMN, user_id, &ehplmn_nb, &ehplmn) == EXIT_FAILURE ) + if ( parse_Xplmn(ue_setting, EHPLMN, user_id, &ehplmns) == EXIT_FAILURE ) nb_errors++; if ( nb_errors > 0 ) @@ -258,7 +253,7 @@ int parse_ue_plmn_param(config_setting_t *ue_setting, int user_id, const char ** } int parse_Xplmn(config_setting_t *ue_setting, const char *section, - int user_id, int *plmns_count, int **plmns ) { + int user_id, plmns_list *plmns) { int rc; int item_count; config_setting_t *setting; @@ -286,8 +281,8 @@ int parse_Xplmn(config_setting_t *ue_setting, const char *section, datas[i] = rc; } - *plmns_count = item_count; - *plmns = datas; + plmns->size = item_count; + plmns->items = datas; return EXIT_SUCCESS; } diff --git a/openair3/NAS/TOOLS/conf2uedata.h b/openair3/NAS/TOOLS/conf2uedata.h index 9fd1cb53a932df6d24cabdd2d8a959428ad354aa..64a182af7508335a8153c4e8211adba9f67c49ec 100644 --- a/openair3/NAS/TOOLS/conf2uedata.h +++ b/openair3/NAS/TOOLS/conf2uedata.h @@ -43,18 +43,18 @@ typedef struct { const char *mcc; } plmn_conf_param_t; -extern int *ucplmn; -extern int *oplmn; -extern int *ocplmn; -extern int *fplmn; -extern int *ehplmn; +typedef struct { + int size; + int *items; +} plmns_list; + +extern plmns_list ucplmns; +extern plmns_list oplmns; +extern plmns_list ocplmns; +extern plmns_list fplmns; +extern plmns_list ehplmns; extern int plmn_nb; -extern int ucplmn_nb; -extern int oplmn_nb; -extern int ocplmn_nb; -extern int fplmn_nb; -extern int ehplmn_nb; extern plmn_conf_param_t* user_plmn_list; extern network_record_t* user_network_record_list; @@ -70,7 +70,7 @@ int parse_plmns(config_setting_t *all_plmn_setting); int get_plmn_index(const char * mccmnc); int parse_ue_plmn_param(config_setting_t *ue_setting, int user_id, const char **hplmn); int parse_Xplmn(config_setting_t *ue_setting, const char *section, - int user_id, int *plmns_count, int **plmns ); + int user_id, plmns_list *plmns); #endif // _CONF2UEDATA_H diff --git a/openair3/NAS/TOOLS/conf_emm.c b/openair3/NAS/TOOLS/conf_emm.c index de696592de92c52c6d8e0d09d3400c58ed5fda40..ca9665e6d6cf238fa1fbf6e8bf57bb3690ba66dd 100644 --- a/openair3/NAS/TOOLS/conf_emm.c +++ b/openair3/NAS/TOOLS/conf_emm.c @@ -53,7 +53,7 @@ void gen_emm_data(emm_nvdata_t *emm_data, const char *hplmn, const char *msin) { emm_data->rplmn.MNCdigit1 = user_plmn_list[hplmn_index].mnc[0]; emm_data->rplmn.MNCdigit2 = user_plmn_list[hplmn_index].mnc[1]; - emm_data->eplmn.n_plmns = ehplmn_nb; + emm_data->eplmn.n_plmns = ehplmns.size; } int write_emm_data(const char *directory, int user_id, emm_nvdata_t *emm_data) { diff --git a/openair3/NAS/TOOLS/conf_usim.c b/openair3/NAS/TOOLS/conf_usim.c index 345309996fc2bba01078105b284c135fc670a226..916104186287eeb319fccccb6006d9cdfea81db2 100644 --- a/openair3/NAS/TOOLS/conf_usim.c +++ b/openair3/NAS/TOOLS/conf_usim.c @@ -96,9 +96,9 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { for (int i = 0; i < USIM_FPLMN_MAX; i++) { memset(&usim_data->fplmn[i], 0xff, sizeof(plmn_t)); } - if (fplmn_nb > 0) { - for (int i = 0; i < fplmn_nb; i++) { - usim_data->fplmn[i] = user_network_record_list[fplmn[i]].plmn; + if (fplmns.size > 0) { + for (int i = 0; i < fplmns.size; i++) { + usim_data->fplmn[i] = user_network_record_list[fplmns.items[i]].plmn; } } @@ -183,8 +183,8 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { /* * PLMN Network Name and Operator PLMN List */ - for (int i = 0; i < oplmn_nb; i++) { - network_record_t record = user_network_record_list[oplmn[i]]; + for (int i = 0; i < oplmns.size; i++) { + network_record_t record = user_network_record_list[oplmns.items[i]]; usim_data->pnn[i].fullname.type = USIM_PNN_FULLNAME_TAG; usim_data->pnn[i].fullname.length = strlen(record.fullname); strncpy((char*) usim_data->pnn[i].fullname.value, record.fullname, @@ -198,8 +198,8 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { usim_data->opl[i].end = record.tac_end; usim_data->opl[i].record_id = i; } - if (oplmn_nb < USIM_OPL_MAX) { - for (int i = oplmn_nb; i < USIM_OPL_MAX; i++) { + if (oplmns.size < USIM_OPL_MAX) { + for (int i = oplmns.size; i < USIM_OPL_MAX; i++) { memset(&usim_data->opl[i].plmn, 0xff, sizeof(plmn_t)); } } @@ -207,11 +207,11 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { /* * List of Equivalent HPLMNs */ - for (int i = 0; i < ehplmn_nb; i++) { - usim_data->ehplmn[i] = user_network_record_list[ehplmn[i]].plmn; + for (int i = 0; i < ehplmns.size; i++) { + usim_data->ehplmn[i] = user_network_record_list[ehplmns.items[i]].plmn; } - if (ehplmn_nb < USIM_EHPLMN_MAX) { - for (int i = ehplmn_nb; i < USIM_EHPLMN_MAX; i++) { + if (ehplmns.size < USIM_EHPLMN_MAX) { + for (int i = ehplmns.size; i < USIM_EHPLMN_MAX; i++) { memset(&usim_data->ehplmn[i], 0xff, sizeof(plmn_t)); } } @@ -227,9 +227,9 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { for (int i = 0; i < USIM_PLMN_MAX; i++) { memset(&usim_data->plmn[i], 0xff, sizeof(plmn_t)); } - if (ucplmn_nb > 0) { - for (int i = 0; i < ucplmn_nb; i++) { - usim_data->plmn[i].plmn = user_network_record_list[ucplmn[i]].plmn; + if (ucplmns.size > 0) { + for (int i = 0; i < ucplmns.size; i++) { + usim_data->plmn[i].plmn = user_network_record_list[ucplmns.items[i]].plmn; } } @@ -238,9 +238,9 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data) { for (int i = 0; i < USIM_OPLMN_MAX; i++) { memset(&usim_data->oplmn[i], 0xff, sizeof(plmn_t)); } - if (ocplmn_nb > 0) { - for (int i = 0; i < ocplmn_nb; i++) { - usim_data->oplmn[i].plmn = user_network_record_list[ocplmn[i]].plmn; + if (ocplmns.size > 0) { + for (int i = 0; i < ocplmns.size; i++) { + usim_data->oplmn[i].plmn = user_network_record_list[ocplmns.items[i]].plmn; usim_data->oplmn[i].AcT = (USIM_ACT_GSM | USIM_ACT_UTRAN | USIM_ACT_EUTRAN); }