diff --git a/openair3/NAS/TOOLS/conf2uedata.c b/openair3/NAS/TOOLS/conf2uedata.c
index 5112d737ac58c11b187eab9f937607f68cab075a..338d1b11ef0a39effd47da01f21c893616093b13 100644
--- a/openair3/NAS/TOOLS/conf2uedata.c
+++ b/openair3/NAS/TOOLS/conf2uedata.c
@@ -28,7 +28,7 @@ int main(int argc, char**argv) {
 			break;
 		case 'h':
 			_display_usage();
-			return EXIT_SUCCESS;
+			return true;
 			break;
 		default:
 			break;
@@ -38,26 +38,26 @@ int main(int argc, char**argv) {
 	if (output_dir == NULL ) {
 		printf("No output option found\n");
 		_display_usage();
-		return EXIT_FAILURE;
+		exit(1);
 	}
 
     if ( conf_file == NULL ) {
 		printf("No Configuration file is given\n");
 		_display_usage();
-		return EXIT_FAILURE;
+		exit(1);
 	}
 
-    if ( parse_config_file(output_dir, conf_file) == EXIT_FAILURE ) {
-        exit(EXIT_FAILURE);
+    if ( parse_config_file(output_dir, conf_file) == false ) {
+        exit(1);
     }
 
     display_data_from_directory(output_dir);
 
-	exit(EXIT_SUCCESS);
+	exit(0);
 }
 
-int parse_config_file(const char *output_dir, const char *conf_filename) {
-	int rc = EXIT_SUCCESS;
+bool parse_config_file(const char *output_dir, const char *conf_filename) {
+	int rc = true;
     int ret;
     int ue_nb = 0;
     config_setting_t *root_setting = NULL;
@@ -69,7 +69,7 @@ int parse_config_file(const char *output_dir, const char *conf_filename) {
 	networks_t networks;;
 
     ret = get_config_from_file(conf_filename, &cfg);
-    if (ret == EXIT_FAILURE) {
+    if (ret == false) {
         exit(1);
     }
 
@@ -79,11 +79,11 @@ int parse_config_file(const char *output_dir, const char *conf_filename) {
     all_plmn_setting = config_setting_get_member(root_setting, PLMN);
     if (all_plmn_setting == NULL) {
         printf("NO PLMN SECTION...EXITING...\n");
-        return (EXIT_FAILURE);
+        return (false);
     }
 
     if ( parse_plmns(all_plmn_setting, &networks) == false ) {
-        return EXIT_FAILURE;
+        return false;
     }
 
     for (int i = 0; i < ue_nb; i++) {
@@ -102,25 +102,25 @@ int parse_config_file(const char *output_dir, const char *conf_filename) {
         ue_setting = config_setting_get_member(root_setting, user);
         if (ue_setting == NULL) {
             printf("Check UE%d settings\n", i);
-            return EXIT_FAILURE;
+            return false;
         }
 
         if ( parse_user_plmns_conf(ue_setting, i, &user_plmns, &usim_data_conf.hplmn, networks) == false ) {
-            return EXIT_FAILURE;
+            return false;
         }
 
         rc = parse_ue_user_data(ue_setting, i, &user_data_conf);
-        if (rc != EXIT_SUCCESS) {
+        if (rc != true) {
             printf("Problem in USER section for UE%d. EXITING...\n", i);
-            return EXIT_FAILURE;
+            return false;
         }
         gen_user_data(&user_data_conf, &user_data);
         write_user_data(output_dir, i, &user_data);
 
         rc = parse_ue_sim_param(ue_setting, i, &usim_data_conf);
-        if (rc != EXIT_SUCCESS) {
+        if (rc != true) {
             printf("Problem in SIM section for UE%d. EXITING...\n", i);
-            return EXIT_FAILURE;
+            return false;
         }
         gen_usim_data(&usim_data_conf, &usim_data, &user_plmns, networks);
         write_usim_data(output_dir, i, &usim_data);
@@ -135,14 +135,14 @@ int parse_config_file(const char *output_dir, const char *conf_filename) {
     free(networks.items);
 	networks.size=0;
     config_destroy(&cfg);
-	return(EXIT_SUCCESS);
+	return(true);
 }
 
-int get_config_from_file(const char *filename, config_t *config) {
+bool get_config_from_file(const char *filename, config_t *config) {
     config_init(config);
     if (filename == NULL) {
         // XXX write error message ?
-        exit(EXIT_FAILURE);
+        return(false);
     }
 
     /* Read the file. If there is an error, report it and exit. */
@@ -153,9 +153,9 @@ int get_config_from_file(const char *filename, config_t *config) {
             fprintf(stderr, "This is line %d\n", config_error_line(config));
         }
         config_destroy(config);
-        return (EXIT_FAILURE);
+        return (false);
     }
-    return EXIT_SUCCESS;
+    return true;
 }
 
 /*
diff --git a/openair3/NAS/TOOLS/conf2uedata.h b/openair3/NAS/TOOLS/conf2uedata.h
index d43dbce50050ab5be3e7c85e5a5245ef28b76e61..b97116eaa9ee443a69f3704ca230b88a7e4ff265 100644
--- a/openair3/NAS/TOOLS/conf2uedata.h
+++ b/openair3/NAS/TOOLS/conf2uedata.h
@@ -8,8 +8,8 @@
 
 #define UE "UE"
 
-int get_config_from_file(const char *filename, config_t *config);
-int parse_config_file(const char *output_dir, const char *filename);
+bool get_config_from_file(const char *filename, config_t *config);
+bool parse_config_file(const char *output_dir, const char *filename);
 
 void _display_usage(void);
 
diff --git a/openair3/NAS/TOOLS/conf_emm.c b/openair3/NAS/TOOLS/conf_emm.c
index 04debda412189944d49aa458a54ef3fff2208f3d..48627cdc0eee551ccba2b36c96b5dcaba943231f 100644
--- a/openair3/NAS/TOOLS/conf_emm.c
+++ b/openair3/NAS/TOOLS/conf_emm.c
@@ -56,16 +56,16 @@ void gen_emm_data(emm_nvdata_t *emm_data, const char *hplmn, const char *msin, i
 	emm_data->eplmn.n_plmns = ehplmn_count;
 }
 
-int write_emm_data(const char *directory, int user_id, emm_nvdata_t *emm_data) {
+bool write_emm_data(const char *directory, int user_id, emm_nvdata_t *emm_data) {
     int rc;
 	char* filename = make_filename(directory, EMM_NVRAM_FILENAME, user_id);
 	rc = memory_write(filename, emm_data, sizeof(emm_nvdata_t));
 	free(filename);
 	if (rc != RETURNok) {
 		perror("ERROR\t: memory_write() failed");
-		exit(EXIT_FAILURE);
+		exit(false);
 	}
-    return(EXIT_SUCCESS);
+    return(true);
 }
 
 int get_msin_parity(const char * msin, const char *mcc, const char *mnc) {
diff --git a/openair3/NAS/TOOLS/conf_emm.h b/openair3/NAS/TOOLS/conf_emm.h
index 0b5f7370913100363f9cbce9a7c76c4c8cdc3abd..32506acdb5c9c7472023a2aa6f307b1c4b524c88 100644
--- a/openair3/NAS/TOOLS/conf_emm.h
+++ b/openair3/NAS/TOOLS/conf_emm.h
@@ -5,7 +5,7 @@
 #include "emmData.h"
 
 void gen_emm_data(emm_nvdata_t *emm_data, const char *hplmn, const char *msin, int ehplmn_count, const networks_t networks);
-int write_emm_data(const char *directory, int user_id, emm_nvdata_t *emm_data);
+bool write_emm_data(const char *directory, int user_id, emm_nvdata_t *emm_data);
 int get_msin_parity(const char * msin, const char *mcc, const char *mnc);
 
 #endif
diff --git a/openair3/NAS/TOOLS/conf_user_data.c b/openair3/NAS/TOOLS/conf_user_data.c
index 4dcfc3cf783459d81e51f565b3a0bf497430e58c..5e14797e166fad8c3ba5a9c5e85ae3ab79ecf2f1 100644
--- a/openair3/NAS/TOOLS/conf_user_data.c
+++ b/openair3/NAS/TOOLS/conf_user_data.c
@@ -1,6 +1,7 @@
 #include <string.h>
 #include <stdlib.h>
 
+#include "commonDef.h"
 #include "memory.h"
 #include "fs.h"
 #include "conf_user_data.h"
@@ -8,34 +9,34 @@
 int parse_ue_user_data(config_setting_t *ue_setting, int user_id, user_data_conf_t *u) {
 	config_setting_t *ue_param_setting = NULL;
 
-	int rc = EXIT_SUCCESS;
+	int rc = true;
 	ue_param_setting = config_setting_get_member(ue_setting, USER);
 	if (ue_param_setting == NULL) {
 		printf("Check USER section of UE%d. EXITING...\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, UE_IMEI, &u->imei);
 	if (rc != 1) {
 		printf("Check USER IMEI section for UE%d. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, MANUFACTURER,
 			&u->manufacturer);
 	if (rc != 1) {
 		printf("Check USER MANUFACTURER for UE%d FULLNAME. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, MODEL, &u->model);
 	if (rc != 1) {
 		printf("Check USER MODEL for UE%d FULLNAME. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, PINCODE, &u->pin);
 	if (rc != 1) {
 		printf("Check USER PIN for UE%d FULLNAME. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
-	return EXIT_SUCCESS;
+	return true;
 }
 
 void gen_user_data(user_data_conf_t *u, user_nvdata_t *user_data) {
@@ -55,15 +56,16 @@ void gen_user_data(user_data_conf_t *u, user_nvdata_t *user_data) {
 	strncpy(user_data->PIN, u->pin, USER_PIN_SIZE);
 }
 
-void write_user_data(const char *directory, int user_id, user_nvdata_t *data) {
+bool write_user_data(const char *directory, int user_id, user_nvdata_t *data) {
     int rc;
 	char* filename = make_filename(directory, USER_NVRAM_FILENAME, user_id);
 	rc = memory_write(filename, data, sizeof(user_nvdata_t));
     free(filename);
-	if (rc != EXIT_SUCCESS) {
+	if (rc != RETURNok) {
 		perror("ERROR\t: memory_write() failed");
-		exit(EXIT_FAILURE);
+		return false;
 	}
+	return true;
 }
 
 /*
diff --git a/openair3/NAS/TOOLS/conf_user_data.h b/openair3/NAS/TOOLS/conf_user_data.h
index ac168e3c72b5e935db7577097a6295b4f8e3c039..6b1d641e030c5f4bea3f529ca19531808c504481 100644
--- a/openair3/NAS/TOOLS/conf_user_data.h
+++ b/openair3/NAS/TOOLS/conf_user_data.h
@@ -1,6 +1,7 @@
 #ifndef _CONF_USER_DATA_H
 #define _CONF_USER_DATA_H
 
+#include <stdbool.h>
 #include <libconfig.h>
 #include "userDef.h"
 
@@ -18,7 +19,7 @@ typedef struct {
 } user_data_conf_t;
 
 void gen_user_data(user_data_conf_t *u, user_nvdata_t *user_data);
-void write_user_data(const char *directory, int user_id, user_nvdata_t *data);
+bool write_user_data(const char *directory, int user_id, user_nvdata_t *data);
 int parse_ue_user_data(config_setting_t *ue_setting, int user_id, user_data_conf_t *u);
 
 int _luhn(const char* cc);
diff --git a/openair3/NAS/TOOLS/conf_usim.c b/openair3/NAS/TOOLS/conf_usim.c
index da2c44dc23c7a9e896d048a89d7bf7bf7efcaad7..5418f01932209b8d9850fd0007af4b9ad908d0c4 100644
--- a/openair3/NAS/TOOLS/conf_usim.c
+++ b/openair3/NAS/TOOLS/conf_usim.c
@@ -8,36 +8,36 @@
 #include "conf2uedata.h"
 #include "conf_usim.h"
 
-int parse_ue_sim_param(config_setting_t *ue_setting, int user_id, usim_data_conf_t *u) {
-	int rc = EXIT_SUCCESS;
+bool parse_ue_sim_param(config_setting_t *ue_setting, int user_id, usim_data_conf_t *u) {
+	int rc = true;
 	config_setting_t *ue_param_setting = NULL;
 	ue_param_setting = config_setting_get_member(ue_setting, SIM);
 	if (ue_param_setting == NULL) {
 		printf("Check SIM section for UE%d. EXITING...\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, MSIN, &u->msin);
 	if (rc != 1 || strlen(u->msin) > 10 || strlen(u->msin) < 9) {
 		printf("Check SIM MSIN section for UE%d. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, USIM_API_K,
 			&u->usim_api_k);
 	if (rc != 1) {
 		printf("Check SIM USIM_API_K  section for UE%d. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, OPC, &u->opc);
 	if (rc != 1) {
 		printf("Check SIM OPC section for UE%d. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
 	rc = config_setting_lookup_string(ue_param_setting, MSISDN, &u->msisdn);
 	if (rc != 1) {
 		printf("Check SIM MSISDN section for UE%d. Exiting\n", user_id);
-		return EXIT_FAILURE;
+		return false;
 	}
-	return EXIT_SUCCESS;
+	return true;
 }
 
 void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data,
@@ -295,7 +295,7 @@ void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data,
 	OPC_SIZE);
 }
 
-int write_usim_data(const char *directory, int user_id, usim_data_t *usim_data){
+bool write_usim_data(const char *directory, int user_id, usim_data_t *usim_data){
     int rc;
     char *filename = make_filename(directory, USIM_API_NVRAM_FILENAME, user_id);
     rc = usim_api_write(filename, usim_data);
diff --git a/openair3/NAS/TOOLS/conf_usim.h b/openair3/NAS/TOOLS/conf_usim.h
index 71e6c63d6b4bb16dba737de2c702db91c2fd31e8..b53265a76a44534d0e773883acbe97206982d3d4 100644
--- a/openair3/NAS/TOOLS/conf_usim.h
+++ b/openair3/NAS/TOOLS/conf_usim.h
@@ -39,8 +39,8 @@ typedef struct {
     const char *hplmn;
 } usim_data_conf_t;
 
-int parse_ue_sim_param(config_setting_t *ue_setting, int user_id, usim_data_conf_t *u);
-int write_usim_data(const char *directory, int user_id, usim_data_t *usim_data);
+bool parse_ue_sim_param(config_setting_t *ue_setting, int user_id, usim_data_conf_t *u);
+bool write_usim_data(const char *directory, int user_id, usim_data_t *usim_data);
 void gen_usim_data(usim_data_conf_t *u, usim_data_t *usim_data,
                    const user_plmns_t *user_plmns, const networks_t networks);
 
diff --git a/openair3/NAS/TOOLS/display.c b/openair3/NAS/TOOLS/display.c
index b130ef2c071b60a9cc82412543dc0abfaf624702..672a9950de62b8f0dae2635f57c4927e1291fded 100644
--- a/openair3/NAS/TOOLS/display.c
+++ b/openair3/NAS/TOOLS/display.c
@@ -64,7 +64,7 @@ void display_ue_data(const char *filename) {
 
 	if (rc != RETURNok) {
 		perror("ERROR\t: memory_read() failed");
-		exit(EXIT_FAILURE);
+		exit(false);
 	}
 
 	/*
@@ -92,7 +92,7 @@ void display_emm_data(const char *filename) {
 	rc = memory_read(filename, &data, sizeof(emm_nvdata_t));
 	if (rc != RETURNok) {
 		perror("ERROR\t: memory_read() failed ");
-		exit(EXIT_FAILURE);
+		exit(false);
 	}
 
 	/*
@@ -168,7 +168,7 @@ void display_usim_data(const char *filename) {
 
 	if (rc != RETURNok) {
 		perror("ERROR\t: usim_api_read() failed");
-		exit(EXIT_FAILURE);
+		exit(2);
 	}
 
 	/*