diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index d264f6dae308446e125435780585f36dbc3421ae..7508635d4eab0faab5e79eabe59266406cad65bf 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -229,7 +229,7 @@ void phy_config_request(PHY_Config_t *phy_config) {
 
   uint8_t Mod_id              = phy_config->Mod_id;
   int CC_id                   = phy_config->CC_id;
-  nfapi_config_request_t *cfg = phy_config->cfg;
+  nfapi_nr_config_request_t *cfg = phy_config->cfg;
 
   NR_DL_FRAME_PARMS *fp;
   PHICH_RESOURCE_t phich_resource_table[4]={oneSixth,half,one,two};
@@ -344,7 +344,7 @@ void install_schedule_handlers(IF_Module_t *if_inst)
 /*void nr_phy_config_request(PHY_VARS_gNB *gNB)
 {
   NR_DL_FRAME_PARMS *fp = &gNB->frame_parms;
-  nfapi_config_request_t *gNB_config = &gNB->gNB_config;
+  nfapi_nr_config_request_t *gNB_config = &gNB->gNB_config;
 
   //overwrite for new NR parameters
   gNB_config->nfapi_config.rf_bands.rf_band[0] = 22;
diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c
index 14f8c683258a74616b666dd6324701c8ae9b193f..d7da6d2fa63ac8f617430253508582008ef17193 100644
--- a/openair1/PHY/INIT/nr_parms.c
+++ b/openair1/PHY/INIT/nr_parms.c
@@ -151,7 +151,7 @@ int nr_init_frame_parms(nfapi_nr_config_request_t* config,
   return 0;
 }
 
-int nr_init_frame_parms_ue(nfapi_config_request_t* config,
+int nr_init_frame_parms_ue(nfapi_nr_config_request_t* config,
                         NR_DL_FRAME_PARMS *frame_parms)
 {
 
diff --git a/openair1/PHY/INIT/phy_init.h b/openair1/PHY/INIT/phy_init.h
index 070cbadd95359edc2638fb9c68732e5b7ab32a2d..5735fad132773fa34063d591a28d196ea75833e3 100644
--- a/openair1/PHY/INIT/phy_init.h
+++ b/openair1/PHY/INIT/phy_init.h
@@ -375,7 +375,7 @@ void phy_config_request(PHY_Config_t *phy_config);
 int init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms,uint8_t osf);
 void dump_frame_parms(LTE_DL_FRAME_PARMS *frame_parms);
 int nr_init_frame_parms(nfapi_nr_config_request_t* config, NR_DL_FRAME_PARMS *frame_parms);
-int nr_init_frame_parms_ue(nfapi_config_request_t* config, NR_DL_FRAME_PARMS *frame_parms);
+int nr_init_frame_parms_ue(nfapi_nr_config_request_t* config, NR_DL_FRAME_PARMS *frame_parms);
 void nr_dump_frame_parms(NR_DL_FRAME_PARMS *frame_parms);
 int phy_init_nr_gNB(PHY_VARS_gNB *gNB, unsigned char is_secondary_gNB, unsigned char abstraction_flag);
 void nr_phy_config_request(NR_PHY_Config_t *gNB);
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.c b/openair1/PHY/NR_TRANSPORT/nr_dci.c
index 02005e5fc94af63ac2b03cc052945890b3ca15d7..795ed0a879ed2009ce1fddb1425a7e8351035e55 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.c
@@ -130,7 +130,7 @@ uint8_t nr_generate_dci_top(NR_DCI_ALLOC_t dci_alloc,
                             int32_t** txdataF,
                             int16_t amp,
                             NR_DL_FRAME_PARMS* frame_parms,
-                            nfapi_config_request_t* config)
+                            nfapi_nr_config_request_t* config)
 {
   return 0;
 }
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.h b/openair1/PHY/NR_TRANSPORT/nr_dci.h
index 03a044ad5ec19d19e7c7284916da1799b56be2f2..d871e4d14f4143874358d967451b84b165617ec2 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.h
@@ -72,6 +72,6 @@ uint8_t nr_generate_dci_top(NR_DCI_ALLOC_t dci_alloc,
                             int32_t** txdataF,
                             int16_t amp,
                             NR_DL_FRAME_PARMS* frame_parms,
-                            nfapi_config_request_t* config)
+                            nfapi_nr_config_request_t* config)
 
 #endif //__PHY_NR_TRANSPORT_DCI__H
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
index a4b8679f37d70e84102a4078835baea0f8ea0a47..6baa08cf2cb12303f058126d36ea98319a016692 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
@@ -45,10 +45,10 @@
 #include "PHY/NR_REFSIG/refsig_defs_ue.h"
 
 extern openair0_config_t openair0_cfg[];
-static  nfapi_config_request_t config_t;
-static  nfapi_config_request_t* config =&config_t;
+static  nfapi_nr_config_request_t config_t;
+static  nfapi_nr_config_request_t* config =&config_t;
 /* forward declarations */
-void set_default_frame_parms_single(nfapi_config_request_t *config, NR_DL_FRAME_PARMS *frame_parms);
+void set_default_frame_parms_single(nfapi_nr_config_request_t *config, NR_DL_FRAME_PARMS *frame_parms);
 
 //#define DEBUG_INITIAL_SYNCH
 
@@ -164,7 +164,7 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
   NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
   int ret=-1;
   int aarx,rx_power=0;
-  //nfapi_config_request_t* config;
+  //nfapi_nr_config_request_t* config;
 
   /*offset parameters to be updated from higher layer */
   k_ssb =0;
diff --git a/openair1/PHY/defs_nr_common.h b/openair1/PHY/defs_nr_common.h
index a7b90576bb85d5f6fb11775081daa44adacdbf0a..261ebff3368aa3230aea1f3b84a7eeb6e4f90e4f 100644
--- a/openair1/PHY/defs_nr_common.h
+++ b/openair1/PHY/defs_nr_common.h
@@ -34,7 +34,7 @@
 #define __PHY_DEFS_NR_COMMON__H__
 
 #include "defs_common.h"
-#include "nfapi_interface.h"
+#include "nfapi_nr_interface.h"
 #include "impl_defs_nr.h"
 #include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
 
diff --git a/openair1/SCHED_NR/sched_nr.h b/openair1/SCHED_NR/sched_nr.h
index 37558f2fac84f1843f7e132ceba0fd71178f2a8c..79cc0c2ae0df60610f7f8a22822f71fce94f7788 100644
--- a/openair1/SCHED_NR/sched_nr.h
+++ b/openair1/SCHED_NR/sched_nr.h
@@ -32,7 +32,8 @@
 #include "PHY_INTERFACE/phy_interface.h"
 #include "SCHED/sched_eNB.h"
 
-nr_subframe_t nr_subframe_select(nfapi_nr_config_request_t *cfg,unsigned char subframe);
+
+lte_subframe_t nr_subframe_select (nfapi_nr_config_request_t *cfg, unsigned char subframe);
 void nr_set_ssb_first_subcarrier(nfapi_nr_config_request_t *cfg, NR_DL_FRAME_PARMS *fp);
 void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB, gNB_rxtx_proc_t *proc, int do_meas);
 void nr_init_feptx_thread(RU_t *ru,pthread_attr_t *attr_feptx);
diff --git a/openair2/RRC/NR_UE/rrc_list.h b/openair2/RRC/NR_UE/rrc_list.h
deleted file mode 100644
index 5bad103dd43160e3281134d1c25c6cb2533f6d31..0000000000000000000000000000000000000000
--- a/openair2/RRC/NR_UE/rrc_list.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef _RRC_LIST_H_
-#define _RRC_LIST_H_
-
-
-#define RRC_LIST_TYPE(T, N)     \
-    struct {                    \
-        T *entries[N];          \
-        int next[N];            \
-        int prev[N];            \
-        int start;              \
-        int count;              \
-    }
-
-//  initial function for the certain list, storage number of entry, initial pointer and corresponding links
-#define RRC_LIST_INIT(list, c)                      \
-    do {                                            \
-        int iterator;                               \
-        (list).count = (c);                         \
-        for(iterator=0; iterator<c; ++iterator){    \
-            (list).entries[iterator] = NULL;        \
-            (list).next[iterator] = -1;             \
-            (list).prev[iterator] = -1;             \
-            (list).start = -1;                      \
-        }                                           \
-    }while(0)
-
-
-//  check the entry by id first then update or create new entry.
-#define RRC_LIST_MOD_ADD(list, new, id_name)                                        \
-    do {                                                                            \
-        int iterator;                                                               \
-        for(iterator=(list).start; iterator!=-1; iterator=(list).next[iterator]){   \
-            if((new)->id_name == (list).entries[iterator]->id_name){                \
-                (list).entries[iterator] = (new);                                   \
-                break;                                                              \
-            }                                                                       \
-        }                                                                           \
-        if(iterator==-1){                                                           \
-            for(iterator=0; iterator<(list).count; ++iterator){                     \
-                if((list).entries[iterator] == NULL){                               \
-                    (list).next[iterator] = (list).start;                           \
-                    (list).prev[iterator] = -1;                                     \
-                    if((list).start != -1){                                         \
-                        (list).prev[list.start] = iterator;                         \
-                    }                                                               \
-                    (list).start = iterator;                                        \
-                    (list).entries[iterator] = (new);                               \
-                    break;                                                          \
-                }                                                                   \
-            }                                                                       \
-        }                                                                           \
-    }while(0)
-
-//  search entries by id, unlink from the list and output free pointer for upper function to release memory
-#define RRC_LIST_MOD_REL(list, id_name, id, free)                                   \
-    do{                                                                             \
-        int iterator;                                                               \
-        for(iterator=(list).start; iterator!=-1; iterator=(list).next[iterator]){   \
-            if(id == (list).entries[iterator]->id_name){                            \
-                if((list).prev[iterator] == -1){                                    \
-                    (list).start = (list).next[iterator];                           \
-                }else{                                                              \
-                    (list).next[(list).prev[iterator]] = (list).next[iterator];     \
-                }                                                                   \
-                if((list).next[iterator] != -1){                                    \
-                    (list).prev[(list).next[iterator]] = (list).prev[iterator];     \
-                }                                                                   \
-                (free) = (list).entries[iterator];                                  \
-                (list).entries[iterator] = NULL;                                    \
-                break;                                                              \
-            }                                                                       \
-        }                                                                           \
-    }while(0)
-
-
-#define RRC_LIST_FOREACH(list, i)       \
-        for((i)=(list).start; (i) != -1; (i)=(list).next[i])
-
-#define RRC_LIST_ENTRY(list, i)         \
-        list.entries[i]
-
-#endif
\ No newline at end of file
diff --git a/targets/RT/USER/nr-ru.c b/targets/RT/USER/nr-ru.c
index 49fbe711691fa5c9394f7c18cf8349ccacec31ef..cbec8b7999d7c0e12cae237153152bde1c36434c 100644
--- a/targets/RT/USER/nr-ru.c
+++ b/targets/RT/USER/nr-ru.c
@@ -600,7 +600,7 @@ void fh_if5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
 void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
 
   NR_DL_FRAME_PARMS *fp = ru->nr_frame_parms;
-  nfapi_config_request_t *cfg = &ru->gNB_list[0]->gNB_config;
+  nfapi_nr_config_request_t *cfg = &ru->gNB_list[0]->gNB_config;
   RU_proc_t *proc        = &ru->proc;
 
   uint16_t packet_type;
@@ -782,7 +782,7 @@ void tx_rf(RU_t *ru) {
 
   RU_proc_t *proc = &ru->proc;
   NR_DL_FRAME_PARMS *fp = ru->nr_frame_parms;
-  nfapi_config_request_t *cfg = &ru->gNB_list[0]->gNB_config;
+  nfapi_nr_config_request_t *cfg = &ru->gNB_list[0]->gNB_config;
   void *txp[ru->nb_tx]; 
   unsigned int txs;
   int i;
@@ -1281,7 +1281,7 @@ int setup_RU_buffers(RU_t *ru) {
   //uint16_t N_TA_offset = 0;
 
   NR_DL_FRAME_PARMS *frame_parms;
-  //nfapi_config_request_t *gNB_config = ru->gNB_list[0]->gNB_config; //tmp index
+  //nfapi_nr_config_request_t *gNB_config = ru->gNB_list[0]->gNB_config; //tmp index
   
   if (ru) {
     frame_parms = ru->nr_frame_parms;
@@ -1841,7 +1841,7 @@ void configure_ru(int idx,
   RU_t               *ru           = RC.ru[idx];
   RRU_config_t       *config       = (RRU_config_t *)arg;
   RRU_capabilities_t *capabilities = (RRU_capabilities_t*)arg;
-  nfapi_config_request_t *gNB_config = &ru->gNB_list[0]->gNB_config;
+  nfapi_nr_config_request_t *gNB_config = &ru->gNB_list[0]->gNB_config;
   int ret;
 
   LOG_I(PHY, "Received capabilities from RRU %d\n",idx);
@@ -1885,7 +1885,7 @@ void configure_rru(int idx,
 
   RRU_config_t *config = (RRU_config_t *)arg;
   RU_t         *ru         = RC.ru[idx];
-  nfapi_config_request_t *gNB_config = &ru->gNB_list[0]->gNB_config;
+  nfapi_nr_config_request_t *gNB_config = &ru->gNB_list[0]->gNB_config;
 
   ru->nr_frame_parms->eutra_band                                               = config->band_list[0];
   ru->nr_frame_parms->dl_CarrierFreq                                           = config->tx_freq[0];
diff --git a/targets/RT/USER/nr-ue.c b/targets/RT/USER/nr-ue.c
index 49a2307c9e8a1fd8f5d79ec5f6ecbd3ade8c7035..5c6f25bb8d08daded882c8776151d614b361289e 100644
--- a/targets/RT/USER/nr-ue.c
+++ b/targets/RT/USER/nr-ue.c
@@ -61,8 +61,8 @@
 #include "T.h"
 
 extern double cpuf;
-static  nfapi_config_request_t config_t;
-static  nfapi_config_request_t* config =&config_t;
+static  nfapi_nr_config_request_t config_t;
+static  nfapi_nr_config_request_t* config =&config_t;
 
 #define FRAME_PERIOD    100000000ULL
 #define DAQ_PERIOD      66667ULL
diff --git a/targets/RT/USER/nr-uesoftmodem.c b/targets/RT/USER/nr-uesoftmodem.c
index c34c10044fabcf7534d7f964478c53fbdea75237..0f8c5313ad2b8b29f41ea1b58f3f683d98a64724 100644
--- a/targets/RT/USER/nr-uesoftmodem.c
+++ b/targets/RT/USER/nr-uesoftmodem.c
@@ -181,7 +181,7 @@ int                             otg_enabled;
 //int                             number_of_cards =   1;
 
 static NR_DL_FRAME_PARMS      *frame_parms[MAX_NUM_CCs];
-static nfapi_config_request_t *config[MAX_NUM_CCs];
+static nfapi_nr_config_request_t *config[MAX_NUM_CCs];
 int16_t   node_synch_ref[MAX_NUM_CCs];
 
 uint32_t target_dl_mcs = 28; //maximum allowed mcs
@@ -245,7 +245,7 @@ int emulate_rf = 0;
 threads_t threads= {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
 
 /* forward declarations */
-void set_default_frame_parms(nfapi_config_request_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]);
+void set_default_frame_parms(nfapi_nr_config_request_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]);
 
 
 /* see file openair2/LAYER2/MAC/main.c for why abstraction_flag is needed
@@ -551,7 +551,7 @@ static void get_options (int argc, char **argv) {
 	  uint32_t online_log_messages;
 	  uint32_t glog_level, glog_verbosity;
 	  uint32_t start_telnetsrv;
-	  nfapi_config_request_t *config[MAX_NUM_CCs];
+	  nfapi_nr_config_request_t *config[MAX_NUM_CCs];
 
 	  paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ;
 	  paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ;
@@ -628,7 +628,7 @@ int T_port = 2021;    /* default port to listen to to wait for the tracer */
 int T_dont_fork = 0;  /* default is to fork, see 'T_init' to understand */
 #endif
 
-  void set_default_frame_parms(nfapi_config_request_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) {
+  void set_default_frame_parms(nfapi_nr_config_request_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) {
 
   int CC_id;
 
@@ -636,7 +636,7 @@ int T_dont_fork = 0;  /* default is to fork, see 'T_init' to understand */
         frame_parms[CC_id] = (NR_DL_FRAME_PARMS*) malloc(sizeof(NR_DL_FRAME_PARMS));
         /* Set some default values that may be overwritten while reading options */
         frame_parms[CC_id] = (NR_DL_FRAME_PARMS*) malloc(sizeof(NR_DL_FRAME_PARMS));
-        config[CC_id] = (nfapi_config_request_t*) malloc(sizeof(nfapi_config_request_t));
+        config[CC_id] = (nfapi_nr_config_request_t*) malloc(sizeof(nfapi_nr_config_request_t));
         config[CC_id]->subframe_config.numerology_index_mu.value =1;
         config[CC_id]->subframe_config.duplex_mode.value = 1; //FDD
         config[CC_id]->subframe_config.dl_cyclic_prefix_type.value = 0; //NORMAL
@@ -695,7 +695,7 @@ int T_dont_fork = 0;  /* default is to fork, see 'T_init' to understand */
 
 }
 
-void set_default_frame_parms_single(nfapi_config_request_t *config, NR_DL_FRAME_PARMS *frame_parms) {
+void set_default_frame_parms_single(nfapi_nr_config_request_t *config, NR_DL_FRAME_PARMS *frame_parms) {
 
   //int CC_id;
 
@@ -703,7 +703,7 @@ void set_default_frame_parms_single(nfapi_config_request_t *config, NR_DL_FRAME_
         frame_parms = (NR_DL_FRAME_PARMS*) malloc(sizeof(NR_DL_FRAME_PARMS));
         /* Set some default values that may be overwritten while reading options */
         frame_parms = (NR_DL_FRAME_PARMS*) malloc(sizeof(NR_DL_FRAME_PARMS));
-        config = (nfapi_config_request_t*) malloc(sizeof(nfapi_config_request_t));
+        config = (nfapi_nr_config_request_t*) malloc(sizeof(nfapi_nr_config_request_t));
         config->subframe_config.numerology_index_mu.value =1;
         config->subframe_config.duplex_mode.value = 1; //FDD
         config->subframe_config.dl_cyclic_prefix_type.value = 0; //NORMAL