diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 9d5ba66c33ec8e5c5c3dee340e9b0231d557b2a3..56290dea8af1ec0678f04f87a70eef57e659abb8 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -817,7 +817,6 @@ add_boolean_option(UE_EXPANSION             False         "enable UE_EXPANSION w
 add_boolean_option(PHY_TX_THREAD            False         "enable UE_EXPANSION with max 256 UE")
 add_boolean_option(PRE_SCD_THREAD           False         "enable UE_EXPANSION with max 256 UE")
 add_boolean_option(UESIM_EXPANSION          False         "enable UESIM_EXPANSION with max 256 UE")
-add_boolean_option(ITTI_SIM                 False         "enable itti simulator")
 
 ########################
 # Include order
@@ -2992,7 +2991,7 @@ if (${T_TRACER})
   foreach(i
         #all "add_executable" definitions (except tests, rb_tool, updatefw)
         lte-softmodem lte-uesoftmodem nr-softmodem
-        nr-uesoftmodem dlsim dlsim_tm4 dlsim_tm7 nr-ittisim
+        nr-uesoftmodem dlsim dlsim_tm4 dlsim_tm7
         ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim
         syncsim nr_ulsim nr_dlsim nr_dlschsim nr_pbchsim nr_pucchsim
         nr_ulschsim ldpctest polartest smallblocktest cu_test du_test
@@ -3078,50 +3077,6 @@ add_executable(rb_tool
 )
 target_include_directories(rb_tool PRIVATE ${OPENAIR2_DIR}/NETWORK_DRIVER/MESH/)
 
-# nr-ittisim
-###################################################
-
-add_executable(nr-ittisim
-  ${rrc_h}
-  ${nr_rrc_h}
-  ${OPENAIR2_DIR}/GNB_APP/gnb_app.c
-  ${OPENAIR2_DIR}/GNB_APP/gnb_config.c
-  ${OPENAIR_DIR}/executables/nr-gnb.c
-  ${OPENAIR_DIR}/executables/nr-ru.c
-  ${OPENAIR2_DIR}/SIMULATION/NR_RRC/itti_sim.c
-  ${OPENAIR_DIR}/executables/softmodem-common.c
-  ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
-  ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
-  ${OPENAIR_TARGETS}/ARCH/COMMON/record_player.c
-  ${OPENAIR2_DIR}/RRC/NAS/nas_config.c
-  ${OPENAIR2_DIR}/RRC/NAS/rb_config.c
-  ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
-  ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
-  ${OPENAIR_DIR}/common/utils/nr/nr_common.c
-  ${OPENAIR_DIR}/common/utils/lte/ue_power.c
-  ${OPENAIR_DIR}/common/utils/lte/prach_utils.c
-  ${OPENAIR2_DIR}/ENB_APP/flexran_agent_ran_api_to_fix.c
-  ${XFORMSINTERFACE_SOURCE}
-  ${T_SOURCE}
-  ${SHLIB_LOADER_SOURCES}
-  )
-
-target_link_libraries (nr-ittisim
-  -Wl,--start-group
-  UTIL HASHTABLE SCTP_CLIENT SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU GTPV1U SECU_CN SECU_OSA
-  ITTI ${FLPT_MSG_LIB} ${FLEXRAN_AGENT_LIB} ${RAL_LIB} ${NAS_SIM_LIB} RRC_LIB NR_RRC_LIB
-  NGAP_LIB NGAP_GNB S1AP_LIB S1AP_ENB L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-  X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB ${FSPT_MSG_LIB}
-  PHY_NR_UE SCHED_NR_UE_LIB NR_L2_UE
-  -Wl,--end-group z dl)
-
-target_link_libraries (nr-ittisim ${LIBXML2_LIBRARIES})
-target_link_libraries (nr-ittisim pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp  ${XFORMS_LIBRARIES} ${PROTOBUF_LIB}  ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES})
-target_link_libraries (nr-ittisim ${LIB_LMS_LIBRARIES})
-target_link_libraries (nr-ittisim ${T_LIB})
-
-add_dependencies( nr-ittisim ldpc_orig ldpc_optim ldpc_optim8seg ldpc )
-
 # ???
 ####################
 list(APPEND oai_nw_drv_src device.c common.c ioctl.c classifier.c tool.c)
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index 5cafb95cba61913ec9535bfcdb9aef9ddb5a79b3..b69ec3b598e1158e000eb1b4f3d0a29fb745c9b7 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -170,8 +170,6 @@ Options:
   Tell cmake to use the Ninja build system. Without, will generate make files
 --sanitize-address | -fsanitize=address
    Enable the address sanitizer on all targets
---ittiSIM
-  Makes the itti simulator
 -h | --help
    Print this help
 
@@ -447,11 +445,6 @@ function main() {
         --sanitize-address | -fsanitize=address)
             CMAKE_CMD="$CMAKE_CMD -DSANITIZE_ADDRESS=True"
             shift;;
-        --ittiSIM)
-            ittiSIM=1
-            CMAKE_CMD="$CMAKE_CMD -DITTI_SIM=True"
-            echo_info "Will compile itti simulator"
-            shift;;
         -h | --help)
             print_help
             exit 1;;
@@ -605,9 +598,6 @@ function main() {
   if [ "$nrUE" = 1 ] ; then
       execlist="$execlist nr-uesoftmodem"
   fi
-  if [ "$ittiSIM" = "1" ] ; then
-      execlist="$execlist nr-ittisim"
-  fi
 
   if [[ "$execlist" == "" && "$SIMUS_PHY" != "1" ]]; then
     echo_success "installing dependencies successful"
diff --git a/common/utils/ocp_itti/all_msg.h b/common/utils/ocp_itti/all_msg.h
index 8f7f48ed5a288737f9917bc0df73bbe9ae2653bd..c4bedc2cf62ea7d38bea5322f7a5ba2ff840519a 100644
--- a/common/utils/ocp_itti/all_msg.h
+++ b/common/utils/ocp_itti/all_msg.h
@@ -17,7 +17,4 @@
 #include "openair2/COMMON/flexran_messages_def.h"
 #include "openair2/COMMON/f1ap_messages_def.h"
 #include "openair2/COMMON/ngap_messages_def.h"
-#if ITTI_SIM
-#include "openair2/COMMON/itti_sim_messages_def.h"
-#endif
 
diff --git a/common/utils/ocp_itti/intertask_interface.h b/common/utils/ocp_itti/intertask_interface.h
index e595311b26cc90720653e39318127cd45c757ba0..636d305c135a19b8b8465c15a2c75d4a8d9fa13a 100644
--- a/common/utils/ocp_itti/intertask_interface.h
+++ b/common/utils/ocp_itti/intertask_interface.h
@@ -262,10 +262,6 @@ void *rrc_enb_process_itti_msg(void *);
 #include <openair3/SCTP/sctp_eNB_task.h>
 #include <openair3/NGAP/ngap_gNB.h>
 
-#ifdef ITTI_SIM
-  #include <openair2/COMMON/itti_sim_messages_types.h>
-#endif
-
 /*
   static const char *const messages_definition_xml = {
   #include <messages_xml.h>
diff --git a/doc/ITTISIM.md b/doc/ITTISIM.md
deleted file mode 100755
index 13fdd908469943e1585c0c014e4f7f7744659f34..0000000000000000000000000000000000000000
--- a/doc/ITTISIM.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<table style="border-collapse: collapse; border: none;">
-  <tr style="border-collapse: collapse; border: none;">
-    <td style="border-collapse: collapse; border: none;">
-      <a href="http://www.openairinterface.org/">
-         <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150>
-         </img>
-      </a>
-    </td>
-    <td style="border-collapse: collapse; border: none; vertical-align: center;">
-      <b><font size = "5">Running L3 ITTI simulator</font></b>
-    </td>
-  </tr>
-</table>
-
-This page is valid on the following branches:
-
-- `develop` starting from tag `2020.w48`
-
-# 1. Building the ITTI simulator.
-
-The ITTI simulator is available directly from the standard build.
-
-```bash
-$ source oaienv
-$ cd cmake_targets
-$ sudo ./build_oai -x -w None -c -ittiSIM
-```
-
-# 2. Running the ITTI simulator.
-
-The ITTI simulator establishes ITTI-threaded communication between the gNB RRC task and the UE RRC task.
-
-This allows to test the sequence of NGAP/RRC/NAS messages.
-
-The main limitations are:
-
-- NAS is a simple stub that just sends and receives messages
-- only initial Attach sequence
-
-## 2.1. Starting the ITTI simulator
-
-The ITTI simulator is able to run with a connected 5GC or without any.
-The develop branch tag `2020.w48` only works RRC without 5GC connection.
-
-```bash
-$ sudo -E ./ran_build/build/nr-ittisim -O gnb.conf
-```
-
diff --git a/openair2/COMMON/itti_sim_messages_def.h b/openair2/COMMON/itti_sim_messages_def.h
deleted file mode 100644
index 681fc932dd2d6d3b593d8360f140a415e80dd371..0000000000000000000000000000000000000000
--- a/openair2/COMMON/itti_sim_messages_def.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/*! \file itti_sim_messages_def.h
- * \brief itti message for itti simulator
- * \author Yoshio INOUE, Masayuki HARADA
- * \email yoshio.inoue@fujitsu.com,masayuki.harada@fujitsu.com
- * \date 2020
- * \version 0.1
- */
-
-
-
-MESSAGE_DEF(GNB_RRC_BCCH_DATA_IND,          MESSAGE_PRIORITY_MED, itti_sim_rrc_ch_t,   GNBBCCHind)
-MESSAGE_DEF(GNB_RRC_CCCH_DATA_IND,          MESSAGE_PRIORITY_MED, itti_sim_rrc_ch_t,   GNBCCCHind)
-MESSAGE_DEF(GNB_RRC_DCCH_DATA_IND,          MESSAGE_PRIORITY_MED, itti_sim_rrc_ch_t,   GNBDCCHind)
-MESSAGE_DEF(UE_RRC_CCCH_DATA_IND,           MESSAGE_PRIORITY_MED, itti_sim_rrc_ch_t,   UECCCHind)
-MESSAGE_DEF(UE_RRC_DCCH_DATA_IND,           MESSAGE_PRIORITY_MED, itti_sim_rrc_ch_t,   UEDCCHind)
diff --git a/openair2/COMMON/itti_sim_messages_types.h b/openair2/COMMON/itti_sim_messages_types.h
deleted file mode 100644
index 2e29e8f508e1508dd012d9cc88b3a1185c95cafa..0000000000000000000000000000000000000000
--- a/openair2/COMMON/itti_sim_messages_types.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/*! \file itti_sim_messages_types.h
- * \brief itti message for itti simulator
- * \author Yoshio INOUE, Masayuki HARADA
- * \email yoshio.inoue@fujitsu.com,masayuki.harada@fujitsu.com
- * \date 2020
- * \version 0.1
- */
-
-#ifndef ITTI_SIM_MESSAGES_TYPES_H_
-#define ITTI_SIM_MESSAGES_TYPES_H_
-
-#include "LTE_asn_constant.h"
-
-
-
-#define GNB_RRC_BCCH_DATA_IND(mSGpTR)           (mSGpTR)->ittiMsg.GNBBCCHind
-#define GNB_RRC_CCCH_DATA_IND(mSGpTR)           (mSGpTR)->ittiMsg.GNBCCCHind
-#define GNB_RRC_DCCH_DATA_IND(mSGpTR)           (mSGpTR)->ittiMsg.GNBDCCHind
-#define UE_RRC_CCCH_DATA_IND(mSGpTR)            (mSGpTR)->ittiMsg.UECCCHind
-#define UE_RRC_DCCH_DATA_IND(mSGpTR)            (mSGpTR)->ittiMsg.UEDCCHind
-
-
-
-typedef struct itti_sim_rrc_ch_s {
-    rb_id_t                      rbid;
-    uint8_t                     *sdu;
-    int                          size;
-} itti_sim_rrc_ch_t;
-
-#endif /* ITTI_SIM_MESSAGES_TYPES_H_ */
diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.c b/openair2/F1AP/f1ap_cu_ue_context_management.c
index c68bfb3852f1119e445a47197c2452f666625be4..f38941fd6b3150a011aad3cd3b3017e0b0965021 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.c
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.c
@@ -961,9 +961,6 @@ int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t       instance,
       LOG_E(F1AP, "could not find ue_context of UE RNTI %x\n", rnti);
     }
 
-#ifdef ITTI_SIM
-    return 0;
-#endif
   } else {
     struct rrc_eNB_ue_context_s *ue_context_p =
       rrc_eNB_get_ue_context(RC.rrc[instance], rnti);
diff --git a/openair2/RRC/LTE/defs_NB_IoT.h b/openair2/RRC/LTE/defs_NB_IoT.h
index c76bdea53f228cecba6c1ebb807498b893148a19..48673ce639f8326d728548a5ae665315bf0bcf00 100644
--- a/openair2/RRC/LTE/defs_NB_IoT.h
+++ b/openair2/RRC/LTE/defs_NB_IoT.h
@@ -37,9 +37,6 @@
 
 #include "COMMON/s1ap_messages_types.h"
 #include "COMMON/rrc_messages_types.h"
-#if ITTI_SIM
-#include "COMMON/itti_sim_messages_types.h"
-#endif
 
 #include "collection/tree.h"
 #include "rrc_types_NB_IoT.h"
diff --git a/openair2/RRC/NR/mac_rrc_dl_direct.c b/openair2/RRC/NR/mac_rrc_dl_direct.c
index b3ba7b9ee5cf51681ac1a21f9c1ea0d14b7d9319..5c8d9d9d5bd1b759a8a0e3997986afc695539b8c 100644
--- a/openair2/RRC/NR/mac_rrc_dl_direct.c
+++ b/openair2/RRC/NR/mac_rrc_dl_direct.c
@@ -26,24 +26,9 @@
 
 static void dl_rrc_message_transfer_direct(module_id_t module_id, const f1ap_dl_rrc_message_t *dl_rrc)
 {
-#ifdef ITTI_SIM
-  const int len = dl_rrc->rrc_container_length;
-  LOG_I(NR_RRC,
-        PROTOCOL_NR_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating RRCSetup (bytes %d)\n",
-        PROTOCOL_NR_RRC_CTXT_UE_ARGS(ctxt_pP),
-        len);
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc(TASK_RRC_GNB, TASK_RRC_UE_SIM, len);
-  memcpy (message_buffer, dl_rrc->rrc_container, len);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_CCCH_DATA_IND);
-  GNB_RRC_CCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_CCCH_DATA_IND (message_p).size = len;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   /* TODO how to manage inter-thread communication? */
 
   dl_rrc_message(module_id, dl_rrc);
-#endif
 }
 
 void mac_rrc_dl_direct_init(nr_mac_rrc_dl_if_t *mac_rrc)
diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c
index 88f051524fe2c1d22a5e6bbe8f54e0803bf2095b..f4be4a772266a0550a725dfc1b4b90d4737fc1fe 100755
--- a/openair2/RRC/NR/rrc_gNB.c
+++ b/openair2/RRC/NR/rrc_gNB.c
@@ -449,17 +449,6 @@ rrc_gNB_generate_RRCSetup_for_RRCReestablishmentRequest(
   ue_context_pP->ue_context.ue_release_timer_thres = 1000;
   /* init timers */
   //   ue_context_pP->ue_context.ue_rrc_inactivity_timer = 0;
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM,
-				ue_p->Srb0.Tx_buffer.payload_size);
-  memcpy (message_buffer, (uint8_t*)ue_p->Srb0.Tx_buffer.Payload, ue_p->Srb0.Tx_buffer.payload_size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_CCCH_DATA_IND);
-  GNB_RRC_CCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_CCCH_DATA_IND (message_p).size  = ue_p->Srb0.Tx_buffer.payload_size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#endif
 }
 
 void
@@ -509,16 +498,8 @@ rrc_gNB_generate_RRCReject(
 
     case ngran_gNB:
     {
-#ifdef ITTI_SIM
-      uint8_t *message_buffer;
-      message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM,
-                ue_p->Srb0.Tx_buffer.payload_size);
-      memcpy (message_buffer, (uint8_t*)ue_p->Srb0.Tx_buffer.Payload, ue_p->Srb0.Tx_buffer.payload_size);
-      message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_CCCH_DATA_IND);
-      GNB_RRC_CCCH_DATA_IND (message_p).sdu = message_buffer;
-      GNB_RRC_CCCH_DATA_IND (message_p).size  = ue_p->Srb0.Tx_buffer.payload_size;
-      itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#endif
+      // NOTE: there was ITTI_SIM which has been removed. This case is maybe
+      // not necessary anymore
       // rrc_mac_config_req_gNB
     }
       break;
@@ -726,17 +707,6 @@ rrc_gNB_generate_defaultRRCReconfiguration(
 
     case ngran_gNB:
     {
-#ifdef ITTI_SIM
-      MessageDef *message_p;
-      uint8_t *message_buffer;
-      message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, size);
-      memcpy (message_buffer, buffer, size);
-      message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-      GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-      GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-      GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-      itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
       LOG_D(NR_RRC, "[FRAME %05d][RRC_gNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n",
           ctxt_pP->frame,
           ctxt_pP->module_id,
@@ -753,7 +723,6 @@ rrc_gNB_generate_defaultRRCReconfiguration(
           buffer,
           PDCP_TRANSMISSION_MODE_CONTROL);
       // rrc_pdcp_config_asn1_req
-#endif
       // rrc_rlc_config_asn1_req
     }
     break;
@@ -989,17 +958,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
         "[FRAME %05d][RRC_gNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n",
         ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_gNB_mui, ctxt_pP->module_id, DCCH);
 
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB_SIM, TASK_RRC_UE_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB_SIM, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   nr_rrc_data_req(
     ctxt_pP,
     DCCH,
@@ -1008,7 +966,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
     size,
     buffer,
     PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
 
   if (NODE_IS_DU(rrc->node_type) || NODE_IS_MONOLITHIC(rrc->node_type)) {
     uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
@@ -1175,17 +1132,6 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
         "[FRAME %05d][RRC_gNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n",
         ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_gNB_mui, ctxt_pP->module_id, DCCH);
 
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB_SIM, TASK_RRC_UE_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB_SIM, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   nr_rrc_data_req(
     ctxt_pP,
     DCCH,
@@ -1194,7 +1140,6 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
     size,
     buffer,
     PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
     uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
@@ -1288,17 +1233,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
   LOG_D(NR_RRC,
         "[FRAME %05d][RRC_gNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n",
         ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_gNB_mui, ctxt_pP->module_id, DCCH);
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   nr_rrc_data_req(
     ctxt_pP,
     DCCH,
@@ -1307,7 +1241,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
     size,
     buffer,
     PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
     uint32_t delay_ms = ue_context_pP->ue_context.masterCellGroup &&
@@ -1366,7 +1299,6 @@ rrc_gNB_process_RRCReconfigurationComplete(
                         &kRRCint);
   /* Refresh SRBs/DRBs */
 
-#ifndef ITTI_SIM
   LOG_D(NR_RRC,"Configuring PDCP DRBs/SRBs for UE %x\n",ue_context_pP->ue_context.rnti);
 
   nr_rrc_pdcp_config_asn1_req(ctxt_pP,
@@ -1448,7 +1380,6 @@ rrc_gNB_process_RRCReconfigurationComplete(
     }
     itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
   }
-#endif
 
   /* Set the SRB active in UE context */
   if (SRB_configList != NULL) {
@@ -1610,18 +1541,6 @@ rrc_gNB_generate_RRCReestablishment(
             rnti);
     }
 #endif
-#ifdef ITTI_SIM
-        MessageDef *message_p;
-        uint8_t *message_buffer;
-        message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, ue_context->Srb0.Tx_buffer.payload_size);
-        memcpy (message_buffer, (uint8_t *) ue_context->Srb0.Tx_buffer.Payload, ue_context->Srb0.Tx_buffer.payload_size);
-        message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-        GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-        GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-        GNB_RRC_DCCH_DATA_IND (message_p).size  = ue_context->Srb0.Tx_buffer.payload_size;
-        itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#endif
-
 }
 
 //-----------------------------------------------------------------------------
@@ -1858,17 +1777,6 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
     LOG_D(NR_RRC,
           "[FRAME %05d][RRC_gNB][MOD %u][][--- PDCP_DATA_REQ/%d Bytes (rrcConnectionReconfiguration to UE %x MUI %d) --->][PDCP][MOD %u][RB %u]\n",
           ctxt_pP->frame, ctxt_pP->module_id, size, ue_context_pP->ue_context.rnti, rrc_gNB_mui, ctxt_pP->module_id, DCCH);
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
     nr_rrc_data_req(
       ctxt_pP,
       DCCH,
@@ -1877,7 +1785,6 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
       size,
       buffer,
       PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
   }
 
   if (NODE_IS_DU(RC.nrrrc[ctxt_pP->module_id]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
@@ -3787,17 +3694,6 @@ rrc_gNB_generate_SecurityModeCommand(
         size,
         rrc_gNB_mui,
         DCCH);
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM,size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size	= size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   LOG_D(NR_RRC,"calling rrc_data_req :securityModeCommand\n");
   nr_rrc_data_req(ctxt_pP,
                   DCCH,
@@ -3806,7 +3702,6 @@ rrc_gNB_generate_SecurityModeCommand(
                   size,
                   buffer,
                   PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
       break;
 
     default :
@@ -3859,17 +3754,6 @@ rrc_gNB_generate_UECapabilityEnquiry(
         size,
         rrc_gNB_mui,
         DCCH);
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-  GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-  GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  GNB_RRC_DCCH_DATA_IND (message_p).size  = size;
-  itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   nr_rrc_data_req(ctxt_pP,
                   DCCH,
                   rrc_gNB_mui++,
@@ -3877,7 +3761,6 @@ rrc_gNB_generate_UECapabilityEnquiry(
                   size,
                   buffer,
                   PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
   break;
 
     default :
@@ -3919,17 +3802,6 @@ rrc_gNB_generate_RRCRelease(
         rrc_gNB_mui,
         DCCH);
 
-#ifdef ITTI_SIM
-    MessageDef *message_p;
-    uint8_t *message_buffer;
-    message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, size);
-    memcpy (message_buffer, buffer, size);
-    message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-    GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-    GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-    GNB_RRC_DCCH_DATA_IND (message_p).size  = size;
-    itti_send_msg_to_task (TASK_RRC_UE_SIM, ctxt_pP->instance, message_p);
-#else
   if (NODE_IS_CU(RC.nrrrc[ctxt_pP->module_id]->node_type)) {
     uint8_t *message_buffer = itti_malloc (TASK_RRC_GNB, TASK_CU_F1, size);
     memcpy (message_buffer, buffer, size);
@@ -3952,7 +3824,6 @@ rrc_gNB_generate_RRCRelease(
     rrc_gNB_send_NGAP_UE_CONTEXT_RELEASE_COMPLETE(ctxt_pP->instance, ue_context_pP->ue_context.gNB_ue_ngap_id);
     ue_context_pP->ue_context.ue_release_timer_rrc = 1;
   }
-#endif
 }
 void nr_rrc_trigger(protocol_ctxt_t *ctxt, int CC_id, int frame, int subframe)
 {
diff --git a/openair2/RRC/NR/rrc_gNB_NGAP.c b/openair2/RRC/NR/rrc_gNB_NGAP.c
index c73c3d9649df3bdd81b2eda5e497db748662adb7..ef5f969e6d90a211e513f530de2abc2877149f3b 100644
--- a/openair2/RRC/NR/rrc_gNB_NGAP.c
+++ b/openair2/RRC/NR/rrc_gNB_NGAP.c
@@ -824,17 +824,6 @@ rrc_gNB_process_NGAP_DOWNLINK_NAS(
         case ngran_gNB:
         {
           // rrc_mac_config_req_gNB
-#ifdef ITTI_SIM
-        uint8_t *message_buffer;
-        message_buffer = itti_malloc (TASK_RRC_GNB, TASK_RRC_UE_SIM, length);
-        memcpy (message_buffer, buffer, length);
-        MessageDef *message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, GNB_RRC_DCCH_DATA_IND);
-        GNB_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-        GNB_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-        GNB_RRC_DCCH_DATA_IND (message_p).size  = length;
-        itti_send_msg_to_task (TASK_RRC_UE_SIM, instance, message_p);
-        LOG_I(NR_RRC, "Send DL NAS message \n");
-#else
           /* Transfer data to PDCP */
           nr_rrc_data_req (
               &ctxt,
@@ -844,7 +833,6 @@ rrc_gNB_process_NGAP_DOWNLINK_NAS(
               length,
               buffer,
               PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
         }
           break;
 
diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c
index 5c55b4131a8ab932e757515c9ba070045a321596..121ff84c977e283fa73713b86a6c40f1a25bb724 100644
--- a/openair2/RRC/NR_UE/rrc_UE.c
+++ b/openair2/RRC/NR_UE/rrc_UE.c
@@ -1349,12 +1349,6 @@ static void rrc_ue_generate_RRCSetupComplete(
     AssertFatal(1==0,"2 > csi_MeasConfig is not null\n");
 
  if (AMF_MODE_ENABLED) {
-#if defined(ITTI_SIM)
-    as_nas_info_t initialNasMsg;
-    generateRegistrationRequest(&initialNasMsg, ctxt_pP->module_id);
-    nas_msg = (char*)initialNasMsg.data;
-    nas_msg_length = initialNasMsg.length;
-#else
     if (get_softmodem_params()->sa) {
       as_nas_info_t initialNasMsg;
       generateRegistrationRequest(&initialNasMsg, ctxt_pP->module_id);
@@ -1364,7 +1358,6 @@ static void rrc_ue_generate_RRCSetupComplete(
       nas_msg         = (char *) NR_UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data;
       nas_msg_length  = NR_UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.length;
     }
-#endif
   } else {
     nas_msg         = nr_nas_attach_req_imsi;
     nas_msg_length  = sizeof(nr_nas_attach_req_imsi);
@@ -1388,18 +1381,6 @@ static void rrc_ue_generate_RRCSetupComplete(
                   size,
                   buffer,
                   PDCP_TRANSMISSION_MODE_CONTROL);
-
-#ifdef ITTI_SIM
-  MessageDef *message_p;
-  uint8_t *message_buffer;
-  message_buffer = itti_malloc (TASK_RRC_NRUE, TASK_RRC_GNB_SIM, size);
-  memcpy (message_buffer, buffer, size);
-  message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-  UE_RRC_DCCH_DATA_IND (message_p).rbid = 1;
-  UE_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-  UE_RRC_DCCH_DATA_IND (message_p).size  = size;
-  itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
-#endif
 }
 
 int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB_INFO *const Srb_info, const uint8_t gNB_index ){
@@ -1718,19 +1699,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
      }
 
      LOG_T(NR_RRC, "\n");
- #ifdef ITTI_SIM
-     MessageDef *message_p;
-     uint8_t *message_buffer;
-     message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,
-			(enc_rval.encoded + 7) / 8);
-     memcpy (message_buffer, buffer, (enc_rval.encoded + 7) / 8);
-
-     message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-     GNB_RRC_DCCH_DATA_IND (message_p).rbid  = DCCH;
-     GNB_RRC_DCCH_DATA_IND (message_p).sdu   = message_buffer;
-     GNB_RRC_DCCH_DATA_IND (message_p).size    = (enc_rval.encoded + 7) / 8;
-     itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
- #else
      rrc_data_req_nr_ue (ctxt_pP,
                       DCCH,
                       nr_rrc_mui++,
@@ -1738,7 +1706,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
                       (enc_rval.encoded + 7) / 8,
                       buffer,
                       PDCP_TRANSMISSION_MODE_CONTROL);
- #endif
    } else
      LOG_W(NR_RRC,"securityModeCommand->criticalExtensions.present (%d) != NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand\n",
 		  securityModeCommand->criticalExtensions.present);
@@ -1784,19 +1751,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
      //printf("\n");
      /*UE_rrc_inst[ue_mod_idP].Srb0[Idx].Tx_buffer.Payload[i] = taus()&0xff;
      UE_rrc_inst[ue_mod_idP].Srb0[Idx].Tx_buffer.payload_size =i; */
-
-#ifdef ITTI_SIM
-    MessageDef *message_p;
-    uint8_t *message_buffer;
-    message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,
-          NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.payload_size);
-    memcpy (message_buffer, (uint8_t*)NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.Payload,
-          NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.payload_size);
-    message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_CCCH_DATA_IND);
-    GNB_RRC_CCCH_DATA_IND (message_p).sdu = message_buffer;
-    GNB_RRC_CCCH_DATA_IND (message_p).size  = NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.payload_size;
-    itti_send_msg_to_task (TASK_RRC_GNB_SIM, gNB_index, message_p);
-#endif
   }
 }
 
@@ -2261,19 +2215,6 @@ nr_rrc_ue_establish_srb2(
 	 nr_rrc_mui,
 	 UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id),
 	 DCCH);
- #ifdef ITTI_SIM
-   MessageDef *message_p;
-   uint8_t *message_buffer;
-   message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,size);
-   memcpy (message_buffer, buffer, size);
-
-   message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-   UE_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-   UE_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-   UE_RRC_DCCH_DATA_IND (message_p).size  = size;
-   itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
-
- #else
    rrc_data_req_nr_ue (
      ctxt_pP,
      DCCH,
@@ -2282,8 +2223,6 @@ nr_rrc_ue_establish_srb2(
      size,
      buffer,
      PDCP_TRANSMISSION_MODE_CONTROL);
- #endif
-
  }
 
  // from NR SRB1
@@ -2530,22 +2469,6 @@ nr_rrc_ue_establish_srb2(
         length = do_NR_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
         /* Transfer data to PDCP */
         PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, GNB_FLAG_NO, NR_UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0,0);
-#ifdef ITTI_SIM
-        MessageDef *message_p;
-        uint8_t *message_buffer;
-        message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,length);
-        memcpy (message_buffer, buffer, length);
-        
-        message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-        if(NR_UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) 
-          UE_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-        else
-          UE_RRC_DCCH_DATA_IND (message_p).rbid = DCCH1;
-        UE_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-        UE_RRC_DCCH_DATA_IND (message_p).size  = length;
-        itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt.instance, message_p);
-
-#else
         // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
         if(NR_UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) {
           rrc_data_req_nr_ue (&ctxt,
@@ -2562,7 +2485,6 @@ nr_rrc_ue_establish_srb2(
                            length, buffer,
                            PDCP_TRANSMISSION_MODE_CONTROL);
         }
-#endif
         break;
       }
 
@@ -2706,19 +2628,6 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
       }
 
       LOG_I(NR_RRC, "UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8);
-#ifdef ITTI_SIM
-      MessageDef *message_p;
-      uint8_t *message_buffer;
-      message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,
-               (enc_rval.encoded + 7) / 8);
-      memcpy (message_buffer, buffer, (enc_rval.encoded + 7) / 8);
-
-      message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-      GNB_RRC_DCCH_DATA_IND (message_p).rbid  = DCCH;
-      GNB_RRC_DCCH_DATA_IND (message_p).sdu   = message_buffer;
-      GNB_RRC_DCCH_DATA_IND (message_p).size  = (enc_rval.encoded + 7) / 8;
-      itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
-#else
       rrc_data_req_nr_ue (
         ctxt_pP,
         DCCH,
@@ -2727,7 +2636,6 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
         (enc_rval.encoded + 7) / 8,
         buffer,
         PDCP_TRANSMISSION_MODE_CONTROL);
-#endif
     }
   }
 }
@@ -2746,19 +2654,6 @@ nr_rrc_ue_generate_rrcReestablishmentComplete(
                                            rrcReestablishment->rrc_TransactionIdentifier);
     LOG_I(NR_RRC,"[UE %d][RAPROC] Frame %d : Logical Channel UL-DCCH (SRB1), Generating RRCReestablishmentComplete (bytes%d, gNB %d)\n",
           ctxt_pP->module_id,ctxt_pP->frame, length, gNB_index);
-#ifdef ITTI_SIM
-    MessageDef *message_p;
-    uint8_t *message_buffer;
-    message_buffer = itti_malloc (TASK_RRC_NRUE,TASK_RRC_GNB_SIM,length);
-    memcpy (message_buffer, buffer, length);
-
-    message_p = itti_alloc_new_message (TASK_RRC_NRUE, 0, UE_RRC_DCCH_DATA_IND);
-    UE_RRC_DCCH_DATA_IND (message_p).rbid = DCCH;
-    UE_RRC_DCCH_DATA_IND (message_p).sdu = message_buffer;
-    UE_RRC_DCCH_DATA_IND (message_p).size  = length;
-    itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
-
-#endif
 }
 
 void *recv_msgs_from_lte_ue(void *args_p)
diff --git a/openair2/SIMULATION/NR_RRC/itti_sim.c b/openair2/SIMULATION/NR_RRC/itti_sim.c
deleted file mode 100644
index a6ac444e45ba11bb458715aadcf6d69d8be60798..0000000000000000000000000000000000000000
--- a/openair2/SIMULATION/NR_RRC/itti_sim.c
+++ /dev/null
@@ -1,664 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/*! \file itti_sim.c
- * \brief simulator for itti message from node to UE
- * \author Yoshio INOUE, Masayuki HARADA
- * \email yoshio.inoue@fujitsu.com,masayuki.harada@fujitsu.com
- * \date 2020
- * \version 0.1
- */
-
-
-#include <sched.h>
-
-
-#include "T.h"
-
-#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
-#include <common/utils/assertions.h>
-
-#include "common/ran_context.h"
-
-#include "common/config/config_userapi.h"
-#include "common/utils/load_module_shlib.h"
-#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
-
-#include "PHY/phy_vars.h"
-#include "SCHED/sched_common_vars.h"
-#include "LAYER2/MAC/mac_vars.h"
-#include "RRC/LTE/rrc_vars.h"
-#include "gnb_config.h"
-#include "SIMULATION/TOOLS/sim.h"
-
-#ifdef SMBV
-#include "PHY/TOOLS/smbv.h"
-unsigned short config_frames[4] = {2,9,11,13};
-#endif
-
-#include "common/utils/LOG/log.h"
-#include "common/utils/LOG/vcd_signal_dumper.h"
-#include "UTIL/OPT/opt.h"
-
-#include "intertask_interface.h"
-
-
-#include "system.h"
-#include <openair2/GNB_APP/gnb_app.h>
-#include "PHY/TOOLS/phy_scope_interface.h"
-#include "PHY/TOOLS/nr_phy_scope.h"
-#include "stats.h"
-#include "nr-softmodem.h"
-#include "executables/softmodem-common.h"
-#include "executables/thread-common.h"
-#include "NB_IoT_interface.h"
-#include "x2ap_eNB.h"
-#include "ngap_gNB.h"
-#include "RRC/NR_UE/rrc_proto.h"
-#include "RRC/NR_UE/rrc_vars.h"
-#include "openair3/NAS/UE/nas_ue_task.h"
-#include <executables/split_headers.h>
-#include <executables/nr-uesoftmodem.h>
-#if ITTI_SIM
-#include "nr_nas_msg_sim.h"
-#endif
-
-pthread_cond_t nfapi_sync_cond;
-pthread_mutex_t nfapi_sync_mutex;
-int nfapi_sync_var=-1; //!< protected by mutex \ref nfapi_sync_mutex
-
-uint32_t timing_advance = 0;
-uint64_t num_missed_slots=0;
-
-int split73=0;
-void sendFs6Ul(PHY_VARS_eNB *eNB, int UE_id, int harq_pid, int segmentID, int16_t *data, int dataLen, int r_offset) {
-  AssertFatal(false, "Must not be called in this context\n");
-}
-void sendFs6Ulharq(enum pckType type, int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, int frame, int subframe, uint8_t *harq_ack, uint8_t tdd_mapping_mode, uint16_t tdd_multiplexing_mask, uint16_t rnti, int32_t stat) {
-  AssertFatal(false, "Must not be called in this context\n");
-}
-
-nrUE_params_t nrUE_params;
-nrUE_params_t *get_nrUE_params(void) {
-  return &nrUE_params;
-}
-
-void processSlotTX(void *arg) {}
-
-THREAD_STRUCT thread_struct;
-pthread_cond_t sync_cond;
-pthread_mutex_t sync_mutex;
-int sync_var=-1; //!< protected by mutex \ref sync_mutex.
-int config_sync_var=-1;
-
-openair0_config_t openair0_cfg[MAX_CARDS];
-
-//volatile int             start_gNB = 0;
-volatile int             oai_exit = 0;
-
-//static int wait_for_sync = 0;
-
-unsigned int mmapped_dma=0;
-int single_thread_flag=1;
-
-int8_t threequarter_fs=0;
-
-uint64_t downlink_frequency[MAX_NUM_CCs][4];
-int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
-
-//Temp fix for inexistent NR upper layer
-unsigned char NB_gNB_INST = 1;
-
-
-int UE_scan = 1;
-int UE_scan_carrier = 0;
-runmode_t mode = normal_txrx;
-static double snr_dB=20;
-
-FILE *input_fd=NULL;
-
-int chain_offset=0;
-
-
-uint8_t dci_Format = 0;
-uint8_t agregation_Level =0xFF;
-
-uint8_t nb_antenna_tx = 1;
-uint8_t nb_antenna_rx = 1;
-
-char ref[128] = "internal";
-char channels[128] = "0";
-
-int otg_enabled;
-
-extern void *udp_eNB_task(void *args_p);
-
-int transmission_mode=1;
-int emulate_rf = 0;
-int numerology = 0;
-
-
-double cpuf;
-
-extern char uecap_xer[1024];
-char uecap_xer_in=0;
-
-/* see file openair2/LAYER2/MAC/main.c for why abstraction_flag is needed
- * this is very hackish - find a proper solution
- */
-uint8_t abstraction_flag=0;
-
-/* forward declarations */
-void set_default_frame_parms(nfapi_nr_config_request_scf_t *config[MAX_NUM_CCs], NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]);
-
-/*---------------------BMC: timespec helpers -----------------------------*/
-
-struct timespec min_diff_time = { .tv_sec = 0, .tv_nsec = 0 };
-struct timespec max_diff_time = { .tv_sec = 0, .tv_nsec = 0 };
-
-struct timespec clock_difftime(struct timespec start, struct timespec end) {
-  struct timespec temp;
-
-  if ((end.tv_nsec-start.tv_nsec)<0) {
-    temp.tv_sec = end.tv_sec-start.tv_sec-1;
-    temp.tv_nsec = 1000000000+end.tv_nsec-start.tv_nsec;
-  } else {
-    temp.tv_sec = end.tv_sec-start.tv_sec;
-    temp.tv_nsec = end.tv_nsec-start.tv_nsec;
-  }
-
-  return temp;
-}
-
-
-
-#define KNRM  "\x1B[0m"
-#define KRED  "\x1B[31m"
-#define KGRN  "\x1B[32m"
-#define KBLU  "\x1B[34m"
-#define RESET "\033[0m"
-
-
-void exit_function(const char *file, const char *function, const int line, const char *s) {
-  int ru_id;
-
-  if (s != NULL) {
-    printf("%s:%d %s() Exiting OAI softmodem: %s\n",file,line, function, s);
-  }
-
-  oai_exit = 1;
-
-  if (RC.ru == NULL)
-    exit(-1); // likely init not completed, prevent crash or hang, exit now...
-
-  for (ru_id=0; ru_id<RC.nb_RU; ru_id++) {
-    if (RC.ru[ru_id] && RC.ru[ru_id]->rfdevice.trx_end_func) {
-      RC.ru[ru_id]->rfdevice.trx_end_func(&RC.ru[ru_id]->rfdevice);
-      RC.ru[ru_id]->rfdevice.trx_end_func = NULL;
-    }
-
-    if (RC.ru[ru_id] && RC.ru[ru_id]->ifdevice.trx_end_func) {
-      RC.ru[ru_id]->ifdevice.trx_end_func(&RC.ru[ru_id]->ifdevice);
-      RC.ru[ru_id]->ifdevice.trx_end_func = NULL;
-    }
-  }
-
-  sleep(1); //allow lte-softmodem threads to exit first
-  exit(1);
-}
-
-void wait_gNBs(void) {
-  int i;
-  int waiting=1;
-
-  while (waiting==1) {
-    printf("Waiting for gNB L1 instances to all get configured ... sleeping 50ms (nb_nr_sL1_inst %d)\n",RC.nb_nr_L1_inst);
-    usleep(50*1000);
-    waiting=0;
-
-    for (i=0; i<RC.nb_nr_L1_inst; i++) {
-
-      if (RC.gNB[i]->configured==0) {
-	waiting=1;
-	break;
-      }
-    }
-  }
-
-  printf("gNB L1 are configured\n");
-}
-
-void wait_RUs(void) {
-  LOG_I(PHY,"Waiting for RUs to be configured ... RC.ru_mask:%02lx\n", RC.ru_mask);
-  // wait for all RUs to be configured over fronthaul
-  pthread_mutex_lock(&RC.ru_mutex);
-
-  while (RC.ru_mask>0) {
-    pthread_cond_wait(&RC.ru_cond,&RC.ru_mutex);
-    printf("RC.ru_mask:%02lx\n", RC.ru_mask);
-  }
-
-  pthread_mutex_unlock(&RC.ru_mutex);
-  LOG_I(PHY,"RUs configured\n");
-}
-
-
-int stop_L1L2(module_id_t gnb_id) {
-  return 0;
-}
-
-int restart_L1L2(module_id_t gnb_id) {
-  return 0;
-}
-
-int create_gNB_tasks(uint32_t gnb_nb) {
-  LOG_D(GNB_APP, "%s(gnb_nb:%d)\n", __FUNCTION__, gnb_nb);
-  itti_wait_ready(1);
-
-
-  if (gnb_nb > 0) {
-    if(itti_create_task(TASK_SCTP, sctp_eNB_task, NULL) < 0){
-      LOG_E(SCTP, "Create task for SCTP failed\n");
-      return -1;
-    }
-    if (is_x2ap_enabled()) {
-    if(itti_create_task(TASK_X2AP, x2ap_task, NULL) < 0){
-      LOG_E(X2AP, "Create task for X2AP failed\n");
-    }
-    }
-    else {
-      LOG_I(X2AP, "X2AP is disabled.\n");
-    }
-  }
-
-  if (AMF_MODE_ENABLED && (get_softmodem_params()->phy_test==0 && get_softmodem_params()->do_ra==0 && get_softmodem_params()->sa==0)) {
-    if (gnb_nb > 0) {
-      if (itti_create_task (TASK_NGAP, ngap_gNB_task, NULL) < 0) {
-        LOG_E(S1AP, "Create task for NGAP failed\n");
-        return -1;
-      }
-
-
-      if(!emulate_rf){
-        if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) {
-          LOG_E(UDP_, "Create task for UDP failed\n");
-          return -1;
-        }
-      }
-
-      if (itti_create_task (TASK_GTPV1_U, &nr_gtpv1u_gNB_task, NULL) < 0) {
-        LOG_E(GTPU, "Create task for GTPV1U failed\n");
-        return -1;
-      }
-    }
-  }
-
-
-  if (gnb_nb > 0) {
-    if (itti_create_task (TASK_GNB_APP, gNB_app_task, NULL) < 0) {
-      LOG_E(GNB_APP, "Create task for gNB APP failed\n");
-      return -1;
-    }
-    LOG_I(NR_RRC,"Creating NR RRC gNB Task\n");
-
-    if (itti_create_task (TASK_RRC_GNB, rrc_gnb_task, NULL) < 0) {
-      LOG_E(NR_RRC, "Create task for NR RRC gNB failed\n");
-      return -1;
-    }
-  }
-
-  return 0;
-}
-
-
-static void get_options(void) {
-
-
-  paramdef_t cmdline_params[] = CMDLINE_PARAMS_DESC_GNB ;
-
-  CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP);
-  get_common_options(SOFTMODEM_GNB_BIT );
-  config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL);
-  CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP);
-
-
-
-
-  if ( !(CONFIG_ISFLAGSET(CONFIG_ABORT)) ) {
-    memset((void *)&RC,0,sizeof(RC));
-    /* Read RC configuration file */
-    NRRCConfig();
-    NB_gNB_INST = RC.nb_nr_inst;
-    NB_RU   = RC.nb_RU;
-    printf("Configuration: nb_rrc_inst %d, nb_nr_L1_inst %d, nb_ru %hhu\n",NB_gNB_INST,RC.nb_nr_L1_inst,NB_RU);
-  }
-
-}
-
-
-void set_default_frame_parms(nfapi_nr_config_request_scf_t *config[MAX_NUM_CCs],
-		             NR_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs])
-{
-  for (int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
-    frame_parms[CC_id] = (NR_DL_FRAME_PARMS *) malloc(sizeof(NR_DL_FRAME_PARMS));
-    config[CC_id] = (nfapi_nr_config_request_scf_t *) malloc(sizeof(nfapi_nr_config_request_scf_t));
-    config[CC_id]->ssb_config.scs_common.value = 1;
-    config[CC_id]->cell_config.frame_duplex_type.value = 1; //FDD
-    config[CC_id]->carrier_config.dl_grid_size[1].value = 106;
-    config[CC_id]->carrier_config.ul_grid_size[1].value = 106;
-    config[CC_id]->cell_config.phy_cell_id.value = 0;
-  }
-}
-
-/*
- * helper function to terminate a certain ITTI task
- */
-void terminate_task(task_id_t task_id, module_id_t mod_id) {
-  LOG_I(GNB_APP, "sending TERMINATE_MESSAGE to task %s (%d)\n", itti_get_task_name(task_id), task_id);
-  MessageDef *msg;
-  msg = itti_alloc_new_message (ENB_APP, 0, TERMINATE_MESSAGE);
-  itti_send_msg_to_task (task_id, ENB_MODULE_ID_TO_INSTANCE(mod_id), msg);
-}
-
-//extern void  free_transport(PHY_VARS_gNB *);
-extern void  nr_phy_free_RU(RU_t *);
-
-statis void init_pdcp(void) {
-  //if (!NODE_IS_DU(RC.rrc[0]->node_type)) {
-  pdcp_layer_init();
-  uint32_t pdcp_initmask = (IS_SOFTMODEM_NOS1) ?
-                           (PDCP_USE_NETLINK_BIT | LINK_ENB_PDCP_TO_IP_DRIVER_BIT) : LINK_ENB_PDCP_TO_GTPV1U_BIT;
-
-  if (IS_SOFTMODEM_NOS1) {
-    printf("IS_SOFTMODEM_NOS1 option enabled \n");
-    pdcp_initmask = pdcp_initmask | ENB_NAS_USE_TUN_BIT | SOFTMODEM_NOKRNMOD_BIT  ;
-  }
-
-  pdcp_module_init(pdcp_initmask, 0);
-
-  pdcp_set_rlc_data_req_func(rlc_data_req);
-  pdcp_set_pdcp_data_ind_func(pdcp_data_ind);
-}
-
-
-int create_tasks_nrue(uint32_t ue_nb) {
-  LOG_D(ENB_APP, "%s(ue_nb:%d)\n", __FUNCTION__, ue_nb);
-  itti_wait_ready(1);
-
-  if (ue_nb > 0) {
-    LOG_D(NR_RRC, "create TASK_RRC_NRUE\n");
-    if (itti_create_task (TASK_RRC_NRUE, rrc_nrue_task, NULL) < 0) {
-      LOG_E(NR_RRC, "Create task for RRC UE failed\n");
-      return -1;
-    }
-
-    LOG_D(NR_RRC,"create TASK_NAS_NRUE\n");
-    if (itti_create_task (TASK_NAS_NRUE, nas_nrue_task, NULL) < 0) {
-      LOG_E(NR_RRC, "Create task for NAS UE failed\n");
-      return -1;
-    }
-  }
-
-
-  itti_wait_ready(0);
-  return 0;
-}
-
-
-void *itti_sim_ue_rrc_task( void *args_p) {
-  MessageDef   *msg_p, *message_p;
-  instance_t    instance;
-  unsigned int  ue_mod_id;
-  int           result;
-  itti_mark_task_ready (TASK_RRC_UE_SIM);
-
-  while(1) {
-    // Wait for a message
-    itti_receive_msg (TASK_RRC_UE_SIM, &msg_p);
-    instance = ITTI_MSG_DESTINATION_INSTANCE (msg_p);
-    ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance);
-
-    switch (ITTI_MSG_ID(msg_p)) {
-      case TERMINATE_MESSAGE:
-        LOG_W(NR_RRC, " *** Exiting RRC thread\n");
-        itti_exit_task ();
-        break;
-
-      case MESSAGE_TEST:
-        LOG_D(NR_RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
-        break;
-      case GNB_RRC_BCCH_DATA_IND:
-          message_p = itti_alloc_new_message (TASK_RRC_UE_SIM, 0, NR_RRC_MAC_BCCH_DATA_IND);
-          memset (NR_RRC_MAC_BCCH_DATA_IND (message_p).sdu, 0, BCCH_SDU_SIZE);
-          NR_RRC_MAC_BCCH_DATA_IND (message_p).sdu_size  = GNB_RRC_BCCH_DATA_IND(msg_p).size;
-          memcpy (NR_RRC_MAC_BCCH_DATA_IND (message_p).sdu, GNB_RRC_BCCH_DATA_IND(msg_p).sdu, GNB_RRC_BCCH_DATA_IND(msg_p).size);
-          itti_send_msg_to_task (TASK_RRC_NRUE, instance, message_p);
-        break;
-      case GNB_RRC_CCCH_DATA_IND:
-        message_p = itti_alloc_new_message (TASK_RRC_UE_SIM, 0, NR_RRC_MAC_CCCH_DATA_IND);
-        printf("receive GNB_RRC_CCCH_DATA_IND\n");
-        memset (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
-        memcpy (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, GNB_RRC_CCCH_DATA_IND(msg_p).sdu, GNB_RRC_CCCH_DATA_IND(msg_p).size);
-        NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu_size  = GNB_RRC_CCCH_DATA_IND(msg_p).size;
-        itti_send_msg_to_task (TASK_RRC_NRUE, instance, message_p);
-        break;
-      case GNB_RRC_DCCH_DATA_IND:
-        printf("receive GNB_RRC_DCCH_DATA_IND\n");
-        message_p = itti_alloc_new_message (TASK_RRC_UE_SIM, 0, NR_RRC_DCCH_DATA_IND);
-        NR_RRC_DCCH_DATA_IND (message_p).dcch_index = GNB_RRC_DCCH_DATA_IND(msg_p).rbid;
-        NR_RRC_DCCH_DATA_IND (message_p).sdu_size   = GNB_RRC_DCCH_DATA_IND(msg_p).size;
-        NR_RRC_DCCH_DATA_IND (message_p).sdu_p      = GNB_RRC_DCCH_DATA_IND(msg_p).sdu;
-        itti_send_msg_to_task (TASK_RRC_NRUE, instance, message_p);
-        break;
-      default:
-        LOG_E(NR_RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
-        break;
-    }
-
-    result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), msg_p);
-    AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
-    msg_p = NULL;
-  }
-}
-
-
-void *itti_sim_gnb_rrc_task( void *args_p) {
-  MessageDef   *msg_p, *message_p;
-  instance_t    instance;
-  unsigned int  ue_mod_id;
-  int           result;
-  itti_mark_task_ready (TASK_RRC_GNB_SIM);
-
-  while(1) {
-    // Wait for a message
-    itti_receive_msg (TASK_RRC_GNB_SIM, &msg_p);
-    instance = ITTI_MSG_DESTINATION_INSTANCE (msg_p);
-    ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance);
-
-    switch (ITTI_MSG_ID(msg_p)) {
-      case TERMINATE_MESSAGE:
-        LOG_W(NR_RRC, " *** Exiting RRC thread\n");
-        itti_exit_task ();
-        break;
-
-      case MESSAGE_TEST:
-        LOG_D(NR_RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
-        break;
-      case UE_RRC_CCCH_DATA_IND:
-          message_p = itti_alloc_new_message (TASK_RRC_GNB_SIM, 0, NR_RRC_MAC_CCCH_DATA_IND);
-          NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = UE_RRC_CCCH_DATA_IND(msg_p).size;
-          memset (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
-          memcpy (NR_RRC_MAC_CCCH_DATA_IND (message_p).sdu, UE_RRC_CCCH_DATA_IND(msg_p).sdu, UE_RRC_CCCH_DATA_IND(msg_p).size);
-          itti_send_msg_to_task (TASK_RRC_GNB, instance, message_p);
-           break;
-      case UE_RRC_DCCH_DATA_IND:
-    	    message_p = itti_alloc_new_message (TASK_RRC_GNB_SIM, 0, NR_RRC_DCCH_DATA_IND);
-    	    NR_RRC_DCCH_DATA_IND (message_p).sdu_size   = UE_RRC_DCCH_DATA_IND(msg_p).size;
-          NR_RRC_DCCH_DATA_IND (message_p).dcch_index = UE_RRC_DCCH_DATA_IND(msg_p).rbid;
-          NR_RRC_DCCH_DATA_IND (message_p).sdu_p      = UE_RRC_DCCH_DATA_IND(msg_p).sdu;
-    	    itti_send_msg_to_task (TASK_RRC_GNB, instance, message_p);
-           break;
-
-      default:
-        LOG_E(NR_RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
-        break;
-    }
-
-    result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), msg_p);
-    AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
-    msg_p = NULL;
-  }
-}
-
-
-int main( int argc, char **argv )
-{
-  start_background_system();
-
-  ///static configuration for NR at the moment
-  if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == NULL) {
-    exit_fun("[SOFTMODEM] Error, configuration module init failed\n");
-  }
-  set_softmodem_sighandler();
-#ifdef DEBUG_CONSOLE
-  setvbuf(stdout, NULL, _IONBF, 0);
-  setvbuf(stderr, NULL, _IONBF, 0);
-#endif
-
-  logInit();
-  //set_latency_target();
-  printf("Reading in command-line options\n");
-  get_options ();
-
-  if (CONFIG_ISFLAGSET(CONFIG_ABORT) ) {
-    fprintf(stderr,"Getting configuration failed\n");
-    exit(-1);
-  }
-
-  AMF_MODE_ENABLED = !IS_SOFTMODEM_NOS1;
-//  AMF_MODE_ENABLED = 0;
-  NGAP_CONF_MODE   = !IS_SOFTMODEM_NOS1; //!get_softmodem_params()->phy_test;
-
-#if T_TRACER
-  T_Config_Init();
-#endif
-  //randominit (0);
-  set_taus_seed (0);
-  printf("configuring for RAU/RRU\n");
-
-  if (opp_enabled ==1) {
-    reset_opp_meas();
-  }
-
-  cpuf=get_cpu_freq_GHz();
-  itti_init(TASK_MAX, tasks_info);
-
-  init_opt();
-
-  LOG_I(HW, "Version: %s\n", PACKAGE_VERSION);
-
-  if(IS_SOFTMODEM_NOS1)
-    init_pdcp();
-
-  if (RC.nb_nr_inst > 0)  {
-    nr_read_config_and_init();
-    // don't create if node doesn't connect to RRC/S1/GTP
-    AssertFatal(create_gNB_tasks(1) == 0,"cannot create ITTI tasks\n");
-    for (int gnb_id = 0; gnb_id < RC.nb_nr_inst; gnb_id++) {
-      MessageDef *msg_p = itti_alloc_new_message (TASK_GNB_APP, 0, NRRRC_CONFIGURATION_REQ);
-      NRRRC_CONFIGURATION_REQ(msg_p) = RC.nrrrc[gnb_id]->configuration;
-      itti_send_msg_to_task (TASK_RRC_GNB, GNB_MODULE_ID_TO_INSTANCE(gnb_id), msg_p);
-    }
-  } else {
-    printf("No ITTI, Initializing L1\n");
-    return 0;
-  }
-
-  if(itti_create_task (TASK_RRC_GNB_SIM, itti_sim_gnb_rrc_task, NULL) < 0){
-    printf("cannot create ITTI tasks\n");
-    exit(-1); // need a softer mode
-  }
-
-  openair_rrc_top_init_ue_nr("./");
-
-  if (create_tasks_nrue(1) < 0) {
-    printf("cannot create ITTI tasks\n");
-    exit(-1); // need a softer mode
-  }
-
-  if(itti_create_task (TASK_RRC_UE_SIM, itti_sim_ue_rrc_task, NULL) < 0){
-    printf("cannot create ITTI tasks\n");
-    exit(-1); // need a softer mode
-  }
-
-  pthread_cond_init(&sync_cond,NULL);
-  pthread_mutex_init(&sync_mutex, NULL);
-
-  printf("Sending sync to all threads\n");
-  pthread_mutex_lock(&sync_mutex);
-  sync_var=0;
-  pthread_cond_broadcast(&sync_cond);
-  pthread_mutex_unlock(&sync_mutex);
-  // wait for end of program
-  printf("TYPE <CTRL-C> TO TERMINATE\n");
-
-  usleep(100000);
-  protocol_ctxt_t ctxt;
-  struct rrc_gNB_ue_context_s *ue_context_p = NULL;
-
-
-  ue_context_p = rrc_gNB_allocate_new_UE_context(RC.nrrrc[0]);
-
-  if(ue_context_p == NULL){
-    printf("ue_context_p == NULL");
-  }
-  PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt,
-                                0,
-                                ENB_FLAG_YES,
-                                0,
-                                0,
-                                0);
-  NR_UE_rrc_inst[ctxt.module_id].Info[0].State = RRC_SI_RECEIVED;
-
-  nr_rrc_ue_generate_RRCSetupRequest(ctxt.module_id, 0);
-
-  printf("Entering ITTI signals handler\n");
-  itti_wait_tasks_end();
-  printf("Returned from ITTI signal handler\n");
-  oai_exit=1;
-  printf("oai_exit=%d\n",oai_exit);
-
-  printf("stopping MODEM threads\n");
-
-
-  /* release memory used by the RU/gNB threads (incomplete), after all
-   * threads have been stopped (they partially use the same memory) */
-
-  pthread_cond_destroy(&sync_cond);
-  pthread_mutex_destroy(&sync_mutex);
-
-  logClean();
-  printf("Bye.\n");
-  return 0;
-}
-
-
-
diff --git a/openair3/NGAP/ngap_gNB_nas_procedures.c b/openair3/NGAP/ngap_gNB_nas_procedures.c
index d7db2f70b435bbd7692c9be28942eba6d6254c8a..976a4220ddb2dbd08cf9cf1a677ecc702530def6 100644
--- a/openair3/NGAP/ngap_gNB_nas_procedures.c
+++ b/openair3/NGAP/ngap_gNB_nas_procedures.c
@@ -1369,15 +1369,6 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
                 item->pDUSessionResourceReleaseResponseTransfer.size = 0;
                 item->pDUSessionResourceReleaseResponseTransfer.buf = NULL;
                 NGAP_DEBUG("pdusession_release_resp: transfer_buffer is NULL!\n");
-#ifdef ITTI_SIM
-                //For testing only
-                item->pDUSessionResourceReleaseResponseTransfer.buf = malloc(sizeof(uint8_t) * 1);
-                item->pDUSessionResourceReleaseResponseTransfer.size = 1;
-                uint8_t temp = 0;
-                memcpy(item->pDUSessionResourceReleaseResponseTransfer.buf,
-                       &temp,
-                       item->pDUSessionResourceReleaseResponseTransfer.size);    
-#endif
             }
             NGAP_DEBUG("pdusession_release_resp: pdusession ID %ld\n", item->pDUSessionID);
             ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);