diff --git a/openair2/F1AP/f1ap_cu_interface_management.c b/openair2/F1AP/f1ap_cu_interface_management.c
index c3f1e5e34c4d22ca6e4efdc326942a68daeee779..dbb1bc334ed99d0d915f2a5aeb3afffb1efd79c8 100644
--- a/openair2/F1AP/f1ap_cu_interface_management.c
+++ b/openair2/F1AP/f1ap_cu_interface_management.c
@@ -33,23 +33,30 @@
 #include "f1ap_common.h"
 #include "f1ap_encoder.h"
 #include "f1ap_decoder.h"
-#include "f1ap_du_interface_management.h"
+#include "f1ap_itti_messaging.h"
+#include "f1ap_cu_interface_management.h"
 
 extern f1ap_setup_req_t *f1ap_du_data_from_du;
 
-void CU_send_RESET(instance_t instance, F1AP_Reset_t *Reset) {
+int CU_send_RESET(instance_t instance, F1AP_Reset_t *Reset) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_handle_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
+int CU_handle_RESET_ACKKNOWLEDGE(instance_t instance,
+                                  uint32_t assoc_id,
+                                  uint32_t stream,
+                                  F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_handle_RESET(instance_t instance, F1AP_Reset_t *Reset) {
+int CU_handle_RESET(instance_t instance,
+                     uint32_t assoc_id,
+                     uint32_t stream,
+                     F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_send_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
+int CU_send_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
@@ -57,11 +64,14 @@ void CU_send_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *Res
 /*
     Error Indication
 */
-void CU_handle_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication) {
+int CU_handle_ERROR_INDICATION(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_send_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication) {
+int CU_send_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
@@ -69,7 +79,7 @@ void CU_send_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *Error
 /*
     F1 Setup
 */
-void CU_handle_F1_SETUP_REQUEST(instance_t instance,
+int CU_handle_F1_SETUP_REQUEST(instance_t instance,
                                uint32_t assoc_id,
                                uint32_t stream,
                                F1AP_F1AP_PDU_t *pdu)
@@ -216,10 +226,12 @@ void CU_handle_F1_SETUP_REQUEST(instance_t instance,
     itti_send_msg_to_task(TASK_RRC_ENB, ENB_MODULE_ID_TO_INSTANCE(instance), message_p);
   } else {
     CU_send_F1_SETUP_FAILURE(instance);
+    return -1;
   }
+  return 0;
 }
 
-void CU_send_F1_SETUP_RESPONSE(instance_t instance,
+int CU_send_F1_SETUP_RESPONSE(instance_t instance,
                                f1ap_setup_resp_t *f1ap_setup_resp) {
   
   module_id_t enb_mod_idP;
@@ -341,6 +353,7 @@ void CU_send_F1_SETUP_RESPONSE(instance_t instance,
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
+    return -1;
   }
 
   // printf("\n");
@@ -352,9 +365,10 @@ void CU_send_F1_SETUP_RESPONSE(instance_t instance,
   //printf("F1 setup response present = %d\n", out->value.present);
   //f1ap_send_sctp_data_req(instance_p->instance, f1ap_mme_data_p->assoc_id, buffer, len, 0);
 
+  return 0;
 }
 
-void CU_send_F1_SETUP_FAILURE(instance_t instance) {
+int CU_send_F1_SETUP_FAILURE(instance_t instance) {
   printf("CU_send_F1_SETUP_FAILURE\n");
   
   module_id_t enb_mod_idP;
@@ -431,9 +445,12 @@ void CU_send_F1_SETUP_FAILURE(instance_t instance) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
+    return -1;
   }
 
   cu_f1ap_itti_send_sctp_data_req(instance, f1ap_du_data_from_du->assoc_id, buffer, len, 0);
+
+  return 0;
 }
 
 
@@ -442,17 +459,19 @@ void CU_send_F1_SETUP_FAILURE(instance_t instance) {
     gNB-DU Configuration Update
 */
 
-void CU_handle_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdate_t *GNBDUConfigurationUpdate) {
+int CU_handle_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
+                                           uint32_t assoc_id,
+                                           uint32_t stream,
+                                           F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_send_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
+int CU_send_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
                     F1AP_GNBDUConfigurationUpdateFailure_t *GNBDUConfigurationUpdateFailure) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_send_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+int CU_send_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
                     F1AP_GNBDUConfigurationUpdateAcknowledge_t *GNBDUConfigurationUpdateAcknowledge) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
@@ -464,7 +483,7 @@ void CU_send_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
 */
 
 //void CU_send_gNB_CU_CONFIGURATION_UPDATE(F1AP_GNBCUConfigurationUpdate_t *GNBCUConfigurationUpdate) {
-void CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_idP) {
+int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_idP) {
   F1AP_F1AP_PDU_t                    pdu;
   F1AP_GNBCUConfigurationUpdate_t    *out;
   F1AP_GNBCUConfigurationUpdateIEs_t *ie;
@@ -830,28 +849,35 @@ void CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
-    return;
+    return -1;
   }
 
   cu_f1ap_itti_send_sctp_data_req(instance, f1ap_du_data_from_du->assoc_id, buffer, len, 0);
+  return 0;
 }
 
-void CU_handle_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdateFailure_t *GNBCUConfigurationUpdateFailure) {
+int CU_handle_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
+                                                   uint32_t assoc_id,
+                                                   uint32_t stream,
+                                                   F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_handle_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge) {
+int CU_handle_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+                                                       uint32_t assoc_id,
+                                                       uint32_t stream,
+                                                       F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void CU_handle_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
-                    F1AP_GNBDUResourceCoordinationRequest_t *GNBDUResourceCoordinationRequest) {
+int CU_handle_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
+                                                    uint32_t assoc_id,
+                                                    uint32_t stream,
+                                                    F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(0, "Not implemented yet\n");
 }
 
-void CU_send_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
+int CU_send_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
                     F1AP_GNBDUResourceCoordinationResponse_t *GNBDUResourceCoordinationResponse) {
   AssertFatal(0, "Not implemented yet\n");
 }
diff --git a/openair2/F1AP/f1ap_cu_interface_management.h b/openair2/F1AP/f1ap_cu_interface_management.h
index 9902d1a58f232ecb53a06444d552b11a507bef00..acad13836dea4e8043791945cb853fa3551d30ec 100644
--- a/openair2/F1AP/f1ap_cu_interface_management.h
+++ b/openair2/F1AP/f1ap_cu_interface_management.h
@@ -36,59 +36,76 @@
 /*
  * Reset
  */
-void CU_send_RESET(instance_t instance, F1AP_Reset_t *Reset);
-void CU_handle_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
-void CU_handle_RESET(instance_t instance, F1AP_Reset_t *Reset);
-void CU_send_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
+int CU_send_RESET(instance_t instance, F1AP_Reset_t *Reset);
+int CU_handle_RESET_ACKKNOWLEDGE(instance_t instance,
+                                 uint32_t assoc_id,
+                                 uint32_t stream,
+                                 F1AP_F1AP_PDU_t *pdu);
+int CU_handle_RESET(instance_t instance,
+                    uint32_t assoc_id,
+                    uint32_t stream,
+                    F1AP_F1AP_PDU_t *pdu);
+int CU_send_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
 
 /*
  * Error Indication
  */
-void CU_handle_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication);
-void CU_send_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication);
+int CU_handle_ERROR_INDICATION(instance_t instance,
+                               uint32_t assoc_id,
+                               uint32_t stream,
+                               F1AP_F1AP_PDU_t *pdu);
+int CU_send_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication);
 
 /*
  * F1 Setup
  */
-void CU_handle_F1_SETUP_REQUEST(instance_t instance,
-                                uint32_t assoc_id,
-                                uint32_t stream,
-                                F1AP_F1AP_PDU_t *pdu);
+int CU_handle_F1_SETUP_REQUEST(instance_t instance,
+                               uint32_t assoc_id,
+                               uint32_t stream,
+                               F1AP_F1AP_PDU_t *pdu);
 
-void CU_send_F1_SETUP_RESPONSE(instance_t instance, f1ap_setup_resp_t *f1ap_setup_resp);
+int CU_send_F1_SETUP_RESPONSE(instance_t instance, f1ap_setup_resp_t *f1ap_setup_resp);
 
-void CU_send_F1_SETUP_FAILURE(instance_t instance);
+int CU_send_F1_SETUP_FAILURE(instance_t instance);
 
 /*
  * gNB-DU Configuration Update
  */
-void CU_handle_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdate_t *GNBDUConfigurationUpdate);
+int CU_handle_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
+                                          uint32_t assoc_id,
+                                          uint32_t stream,
+                                          F1AP_F1AP_PDU_t *pdu);
 
-void CU_send_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
+int CU_send_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
                     F1AP_GNBDUConfigurationUpdateFailure_t *GNBDUConfigurationUpdateFailure);
 
-void CU_send_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+int CU_send_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
                     F1AP_GNBDUConfigurationUpdateAcknowledge_t *GNBDUConfigurationUpdateAcknowledge);
 
 /*
  * gNB-CU Configuration Update
  */
-void CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_idP);
+int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_idP);
 
-void CU_handle_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdateFailure_t *GNBCUConfigurationUpdateFailure);
+int CU_handle_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
+                                                  uint32_t assoc_id,
+                                                  uint32_t stream,
+                                                  F1AP_F1AP_PDU_t *pdu);
 
-void CU_handle_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge);
+int CU_handle_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+                                                      uint32_t assoc_id,
+                                                      uint32_t stream,
+                                                      F1AP_F1AP_PDU_t *pdu);
 
 /*
  * gNB-DU Resource Coordination
  */
-void CU_handle_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
-                    F1AP_GNBDUResourceCoordinationRequest_t *GNBDUResourceCoordinationRequest);
+int CU_handle_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
+                                                   uint32_t assoc_id,
+                                                   uint32_t stream,
+                                                   F1AP_F1AP_PDU_t *pdu);
 
-void CU_send_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
+int CU_send_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
                     F1AP_GNBDUResourceCoordinationResponse_t *GNBDUResourceCoordinationResponse);
 
 #endif /* F1AP_CU_INTERFACE_MANAGEMENT_H_ */
diff --git a/openair2/F1AP/f1ap_du_interface_management.c b/openair2/F1AP/f1ap_du_interface_management.c
index 454032a8ff615450f348228950433b8eea2eecca..a5086c9aac1097b1cbd821b660766e7697bc8bb9 100644
--- a/openair2/F1AP/f1ap_du_interface_management.c
+++ b/openair2/F1AP/f1ap_du_interface_management.c
@@ -33,24 +33,31 @@
 #include "f1ap_common.h"
 #include "f1ap_encoder.h"
 #include "f1ap_decoder.h"
+#include "f1ap_itti_messaging.h"
 #include "f1ap_du_interface_management.h"
 
 extern f1ap_setup_req_t *f1ap_du_data;
 
 
-void DU_handle_RESET(instance_t instance, F1AP_Reset_t *Reset) {
+int DU_handle_RESET(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_send_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
+int DU_send_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_send_RESET(instance_t instance, F1AP_Reset_t *Reset) {
+int DU_send_RESET(instance_t instance, F1AP_Reset_t *Reset) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_handle_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge) {
+int DU_handle_RESET_ACKNOWLEDGE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
@@ -59,11 +66,14 @@ void DU_handle_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *R
     Error Indication
 */
 
-void DU_send_ERROR_INDICATION(instance_t instance, F1AP_F1AP_PDU_t *pdu_p) {
+int DU_send_ERROR_INDICATION(instance_t instance, F1AP_F1AP_PDU_t *pdu_p) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_handle_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication) {
+int DU_handle_ERROR_INDICATION(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
@@ -73,7 +83,7 @@ void DU_handle_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *Err
 */
 
 // SETUP REQUEST
-void DU_send_F1_SETUP_REQUEST(instance_t instance) {
+int DU_send_F1_SETUP_REQUEST(instance_t instance) {
   module_id_t enb_mod_idP;
   module_id_t du_mod_idP;
 
@@ -381,16 +391,18 @@ void DU_send_F1_SETUP_REQUEST(instance_t instance) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
+    return -1;
   }
 
   du_f1ap_itti_send_sctp_data_req(instance, f1ap_du_data->assoc_id, buffer, len, 0);
+
+  return 0;
 }
 
 int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
                                 uint32_t assoc_id,
                                 uint32_t stream,
-                                F1AP_F1AP_PDU_t *pdu)
-{
+                                F1AP_F1AP_PDU_t *pdu) {
    printf("DU_handle_F1_SETUP_RESPONSE\n");
    return 0;
 }
@@ -399,8 +411,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
 int DU_handle_F1_SETUP_FAILURE(instance_t instance,
                                uint32_t assoc_id,
                                uint32_t stream,
-                               F1AP_F1AP_PDU_t *pdu) 
-{
+                               F1AP_F1AP_PDU_t *pdu) {
   LOG_E(DU_F1AP, "DU_handle_F1_SETUP_FAILURE\n");
   return 0;
 }
@@ -411,7 +422,7 @@ int DU_handle_F1_SETUP_FAILURE(instance_t instance,
 */
 
 //void DU_send_gNB_DU_CONFIGURATION_UPDATE(F1AP_GNBDUConfigurationUpdate_t *GNBDUConfigurationUpdate) {
-void DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
+int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
                                          instance_t du_mod_idP,
                                          f1ap_setup_req_t *f1ap_du_data) {
   F1AP_F1AP_PDU_t                     pdu;
@@ -840,6 +851,7 @@ void DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
 
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
+    return -1;
   }
 
   printf("\n");
@@ -849,44 +861,55 @@ void DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
   /* decode */
   if (f1ap_decode_pdu(&pdu, buffer, len) > 0) {
     printf("Failed to decode F1 setup request\n");
+    return -1;
   }
+
+  return 0;
 }
 
 
 
-void DU_handle_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdateFailure_t GNBDUConfigurationUpdateFailure) {
+int DU_handle_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_handle_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdateAcknowledge_t GNBDUConfigurationUpdateAcknowledge) {
+int DU_handle_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-void DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdate_t *GNBCUConfigurationUpdate) {
+int DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_send_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
+int DU_send_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
                     F1AP_GNBCUConfigurationUpdateFailure_t *GNBCUConfigurationUpdateFailure) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+int DU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
                     F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-void DU_send_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
+int DU_send_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
                     F1AP_GNBDUResourceCoordinationRequest_t *GNBDUResourceCoordinationRequest) {
   AssertFatal(0, "Not implemented yet\n");
 }
 
-void DU_handle_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
-                    F1AP_GNBDUResourceCoordinationResponse_t *GNBDUResourceCoordinationResponse) {
+int DU_handle_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(0, "Not implemented yet\n");
 }
diff --git a/openair2/F1AP/f1ap_du_interface_management.h b/openair2/F1AP/f1ap_du_interface_management.h
index 1c23ad987facf05e26d9bfff3ae78740f2868097..941b86a6d4228d7e61539c5de198178de363471e 100644
--- a/openair2/F1AP/f1ap_du_interface_management.h
+++ b/openair2/F1AP/f1ap_du_interface_management.h
@@ -36,22 +36,31 @@
 /*
  * Reset
  */
-void DU_handle_RESET(instance_t instance, F1AP_Reset_t *Reset);
-void DU_send_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
-void DU_send_RESET(instance_t instance, F1AP_Reset_t *Reset);
-void DU_handle_RESET_ACKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
+int DU_handle_RESET(instance_t instance,
+                    uint32_t assoc_id,
+                    uint32_t stream,
+                    F1AP_F1AP_PDU_t *pdu);
+int DU_send_RESET_ACKKNOWLEDGE(instance_t instance, F1AP_ResetAcknowledge_t *ResetAcknowledge);
+int DU_send_RESET(instance_t instance, F1AP_Reset_t *Reset);
+int DU_handle_RESET_ACKNOWLEDGE(instance_t instance,
+                                uint32_t assoc_id,
+                                uint32_t stream,
+                                F1AP_F1AP_PDU_t *pdu);
 
 /*
  * Error Indication
  */
-void DU_send_ERROR_INDICATION(instance_t instance, F1AP_F1AP_PDU_t *pdu_p);
-void DU_handle_ERROR_INDICATION(instance_t instance, F1AP_ErrorIndication_t *ErrorIndication);
+int DU_send_ERROR_INDICATION(instance_t instance, F1AP_F1AP_PDU_t *pdu_p);
+int DU_handle_ERROR_INDICATION(instance_t instance,
+                               uint32_t assoc_id,
+                               uint32_t stream,
+                               F1AP_F1AP_PDU_t *pdu);
 
 
 /*
  * F1 Setup
  */
-void DU_send_F1_SETUP_REQUEST(instance_t instance);
+int DU_send_F1_SETUP_REQUEST(instance_t instance);
 
 int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
                                 uint32_t assoc_id,
@@ -59,43 +68,51 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
                                 F1AP_F1AP_PDU_t *pdu);
 
 int DU_handle_F1_SETUP_FAILURE(instance_t instance,
-                                uint32_t assoc_id,
-                                uint32_t stream,
-                                F1AP_F1AP_PDU_t *pdu);
+                               uint32_t assoc_id,
+                               uint32_t stream,
+                               F1AP_F1AP_PDU_t *pdu);
 
 /*
  * gNB-DU Configuration Update
  */
-void DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
+int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
                                          instance_t du_mod_idP,
                                          f1ap_setup_req_t *f1ap_du_data);
 
-void DU_handle_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdateFailure_t GNBDUConfigurationUpdateFailure);
+int DU_handle_gNB_DU_CONFIGURATION_FAILURE(instance_t instance,
+                                           uint32_t assoc_id,
+                                           uint32_t stream,
+                                           F1AP_F1AP_PDU_t *pdu);
 
-void DU_handle_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
-                    F1AP_GNBDUConfigurationUpdateAcknowledge_t GNBDUConfigurationUpdateAcknowledge);
+int DU_handle_gNB_DU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+                                                      uint32_t assoc_id,
+                                                      uint32_t stream,
+                                                      F1AP_F1AP_PDU_t *pdu);
 
 /*
  * gNB-CU Configuration Update
  */
-void DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
-                    F1AP_GNBCUConfigurationUpdate_t *GNBCUConfigurationUpdate);
+int DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
+                                          uint32_t assoc_id,
+                                          uint32_t stream,
+                                          F1AP_F1AP_PDU_t *pdu);
 
-void DU_send_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
+int DU_send_gNB_CU_CONFIGURATION_UPDATE_FAILURE(instance_t instance,
                     F1AP_GNBCUConfigurationUpdateFailure_t *GNBCUConfigurationUpdateFailure);
 
-void DU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
+int DU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(instance_t instance,
                     F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge);
 
 
 /*
  * gNB-DU Resource Coordination
  */
-void DU_send_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
+int DU_send_gNB_DU_RESOURCE_COORDINATION_REQUEST(instance_t instance,
                     F1AP_GNBDUResourceCoordinationRequest_t *GNBDUResourceCoordinationRequest);
 
-void DU_handle_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
-                    F1AP_GNBDUResourceCoordinationResponse_t *GNBDUResourceCoordinationResponse);
+int DU_handle_gNB_DU_RESOURCE_COORDINATION_RESPONSE(instance_t instance,
+                                                    uint32_t assoc_id,
+                                                    uint32_t stream,
+                                                    F1AP_F1AP_PDU_t *pdu);
 
 #endif /* F1AP_DU_INTERFACE_MANAGEMENT_H_ */
diff --git a/openair2/F1AP/f1ap_handlers.c b/openair2/F1AP/f1ap_handlers.c
index 068fdf584967080a5bdfaf9ea87fe753cf202901..c2d647e9b8cd27c1c09963bcf1637aa1e6020623 100644
--- a/openair2/F1AP/f1ap_handlers.c
+++ b/openair2/F1AP/f1ap_handlers.c
@@ -32,6 +32,7 @@
 
 #include "f1ap_common.h"
 #include "f1ap_handlers.h"
+#include "f1ap_decoder.h"
 #include "f1ap_cu_interface_management.h"
 #include "f1ap_du_interface_management.h"
 #include "f1ap_cu_rrc_message_transfer.h"
@@ -119,4 +120,4 @@ int f1ap_handle_message(instance_t instance, uint32_t assoc_id, int32_t stream,
         (instance, assoc_id, stream, &pdu);
   ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_F1AP_F1AP_PDU, &pdu);
   return ret;
-}
\ No newline at end of file
+}