diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.c b/openair2/F1AP/f1ap_cu_ue_context_management.c
index 5be5e25ec0e209f49cedb959517e7e7bef0e19e8..3c11d09b1ef39c2c709231c93b9cdfedd0cf7622 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.c
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.c
@@ -19,8 +19,8 @@
  *      contact@openairinterface.org
  */
 
-/*! \file f1ap_du_interface_management.h
- * \brief f1ap interface management for DU
+/*! \file f1ap_cu_ue_context_management.c
+ * \brief F1AP UE Context Management, CU side
  * \author EURECOM/NTUST
  * \date 2018
  * \version 0.1
@@ -30,14 +30,14 @@
  * \warning
  */
 
-/*
-    UE Context Setup
-*/
-
 #include "f1ap_common.h"
+#include "f1ap_encoder.h"
+#include "f1ap_decoder.h"
+#include "f1ap_itti_messaging.h"
+#include "f1ap_cu_ue_context_management.h"
 
 //void CU_send_UE_CONTEXT_SETUP_REQUEST(F1AP_UEContextSetupRequest_t *UEContextSetupRequest) {
-void CU_send_UE_CONTEXT_SETUP_REQUEST(void) {
+int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance) {
   F1AP_F1AP_PDU_t                 pdu;
   F1AP_UEContextSetupRequest_t    *out;
   F1AP_UEContextSetupRequestIEs_t *ie;
@@ -357,7 +357,7 @@ void CU_send_UE_CONTEXT_SETUP_REQUEST(void) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
-    return;
+    return -1;
   }
 
   printf("\n");
@@ -365,44 +365,51 @@ void CU_send_UE_CONTEXT_SETUP_REQUEST(void) {
   /* decode */
   if (f1ap_decode_pdu(&pdu, buffer, len) > 0) {
     printf("Failed to decode F1 setup request\n");
+    return -1;
   }
   //AssertFatal(1==0,"Not implemented yet\n");
+  return 0;
 }
 
-void CU_handle_UE_CONTEXT_SETUP_RESPONSE(F1AP_UEContextSetupResponse_t *UEContextSetupResponse) {
+int CU_handle_UE_CONTEXT_SETUP_RESPONSE(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_UE_CONTEXT_SETUP_FAILURE(F1AP_UEContextSetupFailure_t UEContextSetupFailure) {
+int CU_handle_UE_CONTEXT_SETUP_FAILURE(instance_t       instance,
+                                       uint32_t         assoc_id,
+                                       uint32_t         stream,
+                                       F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-/*
-    UE Context Release (gNB-CU initiated)
-*/
-
-void CU_handle_UE_CONTEXT_RELEASE_REQUEST(F1AP_UEContextReleaseRequest_t *UEContextReleaseRequest) {
+int CU_handle_UE_CONTEXT_RELEASE_REQUEST(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_UE_CONTEXT_RELEASE_COMMAND(F1AP_UEContextReleaseCommand_t *UEContextReleaseCommand) {
+int CU_send_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
+                                       F1AP_UEContextReleaseCommand_t *UEContextReleaseCommand) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-void CU_handle_UE_CONTEXT_RELEASE_COMPLETE(F1AP_UEContextReleaseComplete_t *UEContextReleaseComplete) {
+int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t       instance,
+                                         uint32_t         assoc_id,
+                                         uint32_t         stream,
+                                         F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-/*
-    UE Context Modification Required (gNB-DU initiated)
-*/
-
 //void CU_send_UE_CONTEXT_MODIFICATION_REQUEST(F1AP_UEContextModificationRequest_t *UEContextModificationRequest) {
-void CU_send_UE_CONTEXT_MODIFICATION_REQUEST(void) {
+int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
   F1AP_F1AP_PDU_t                        pdu;
   F1AP_UEContextModificationRequest_t    *out;
   F1AP_UEContextModificationRequestIEs_t *ie;
@@ -863,7 +870,7 @@ void CU_send_UE_CONTEXT_MODIFICATION_REQUEST(void) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
-    return;
+    return -1;
   }
 
   printf("\n");
@@ -871,22 +878,34 @@ void CU_send_UE_CONTEXT_MODIFICATION_REQUEST(void) {
   /* decode */
   if (f1ap_decode_pdu(&pdu, buffer, len) > 0) {
     printf("Failed to decode F1 setup request\n");
+    return -1;
   }
 
+  return 0;
 }
 
-void CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(F1AP_UEContextModificationResponse_t *UEContextModificationResponse) {
+int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(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_UE_CONTEXT_MODIFICATION_FAILURE(F1AP_UEContextModificationFailure_t EContextModificationFailure) {
+int CU_handle_UE_CONTEXT_MODIFICATION_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_UE_CONTEXT_MODIFICATION_REQUIRED(F1AP_UEContextModificationRequired_t *UEContextModificationRequired) {
+int CU_handle_UE_CONTEXT_MODIFICATION_REQUIRED(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_UE_CONTEXT_MODIFICATION_CONFIRM(F1AP_UEContextModificationConfirm_t UEContextModificationConfirm_t) {
+int CU_send_UE_CONTEXT_MODIFICATION_CONFIRM(instance_t instance,
+                                            F1AP_UEContextModificationConfirm_t UEContextModificationConfirm_t) {
   AssertFatal(1==0,"Not implemented yet\n");
-}
\ No newline at end of file
+}
diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.h b/openair2/F1AP/f1ap_cu_ue_context_management.h
index b6bbedba2f0ed9c62704a0f9fdcf52c3e182ed60..f103a170737d7e7a65d454e4b6cb05e80098c479 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.h
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.h
@@ -19,8 +19,8 @@
  *      contact@openairinterface.org
  */
 
-/*! \file f1ap_du_interface_management.h
- * \brief f1ap interface management for DU
+/*! \file f1ap_cu_ue_context_management.h
+ * \brief header file of CU UE Context management
  * \author EURECOM/NTUST
  * \date 2018
  * \version 0.1
@@ -28,4 +28,74 @@
  * \email: navid.nikaein@eurecom.fr, bing-kai.hong@eurecom.fr
  * \note
  * \warning
- */
\ No newline at end of file
+ */
+
+#ifndef F1AP_CU_UE_CONTEXT_MANAGEMENT_H_
+#define F1AP_CU_UE_CONTEXT_MANAGEMENT_H_
+
+/*
+ * UE Context Setup
+ */
+int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance);
+
+int CU_handle_UE_CONTEXT_SETUP_RESPONSE(instance_t       instance,
+                                        uint32_t         assoc_id,
+                                        uint32_t         stream,
+                                        F1AP_F1AP_PDU_t *pdu);
+
+int CU_handle_UE_CONTEXT_SETUP_FAILURE(instance_t       instance,
+                                       uint32_t         assoc_id,
+                                       uint32_t         stream,
+                                       F1AP_F1AP_PDU_t *pdu);
+
+
+/*
+ * UE Context Release Request (gNB-DU initiated)
+ */
+int CU_handle_UE_CONTEXT_RELEASE_REQUEST(instance_t       instance,
+                                         uint32_t         assoc_id,
+                                         uint32_t         stream,
+                                         F1AP_F1AP_PDU_t *pdu);
+
+/*
+ * UE Context Release (gNB-CU initiated)
+ */
+int CU_send_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
+                                       F1AP_UEContextReleaseCommand_t *UEContextReleaseCommand);
+int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t       instance,
+                                         uint32_t         assoc_id,
+                                         uint32_t         stream,
+                                         F1AP_F1AP_PDU_t *pdu);
+
+/*
+ * UE Context Modification (gNB-CU initiated)
+ */
+int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance);
+int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t       instance,
+                                               uint32_t         assoc_id,
+                                               uint32_t         stream,
+                                               F1AP_F1AP_PDU_t *pdu);
+int CU_handle_UE_CONTEXT_MODIFICATION_FAILURE(instance_t       instance,
+                                              uint32_t         assoc_id,
+                                              uint32_t         stream,
+                                              F1AP_F1AP_PDU_t *pdu);
+
+/*
+ * UE Context Modification Required (gNB-DU initiated)
+ */
+int CU_handle_UE_CONTEXT_MODIFICATION_REQUIRED(instance_t       instance,
+                                               uint32_t         assoc_id,
+                                               uint32_t         stream,
+                                               F1AP_F1AP_PDU_t *pdu);
+int CU_send_UE_CONTEXT_MODIFICATION_CONFIRM(instance_t instance,
+                                            F1AP_UEContextModificationConfirm_t UEContextModificationConfirm_t);
+
+/*
+ * UE Inactivity Notification
+ */
+
+/*
+ * Notify
+ */
+
+#endif /* F1AP_CU_UE_CONTEXT_MANAGEMENT_H_ */
diff --git a/openair2/F1AP/f1ap_du_ue_context_management.c b/openair2/F1AP/f1ap_du_ue_context_management.c
index 57dfa4703b2a5423837358ebe11af4fb520629c1..c81c47723c2133822ccc6d30e5c79295e83298d0 100644
--- a/openair2/F1AP/f1ap_du_ue_context_management.c
+++ b/openair2/F1AP/f1ap_du_ue_context_management.c
@@ -19,8 +19,8 @@
  *      contact@openairinterface.org
  */
 
-/*! \file f1ap_du_interface_management.h
- * \brief f1ap interface management for DU
+/*! \file f1ap_du_ue_context_management.c
+ * \brief F1AP UE Context Management, DU side
  * \author EURECOM/NTUST
  * \date 2018
  * \version 0.1
@@ -31,20 +31,22 @@
  */
 
 #include "f1ap_common.h"
+#include "f1ap_encoder.h"
+#include "f1ap_decoder.h"
+#include "f1ap_itti_messaging.h"
 #include "f1ap_du_ue_context_management.h"
 
 extern f1ap_setup_req_t *f1ap_du_data;
 
-/*
-    UE Context Setup
-*/
-
-void DU_handle_UE_CONTEXT_SETUP_REQUEST(F1AP_UEContextSetupRequest_t *UEContextSetupRequest) {
+int DU_handle_UE_CONTEXT_SETUP_REQUEST(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_UE_CONTEXT_SETUP_RESPONSE(F1AP_UEContextSetupResponse_t *UEContextSetupResponse) {
-void DU_send_UE_CONTEXT_SETUP_RESPONSE(void) {
+int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance) {
   F1AP_F1AP_PDU_t                  pdu;
   F1AP_UEContextSetupResponse_t    *out;
   F1AP_UEContextSetupResponseIEs_t *ie;
@@ -297,7 +299,7 @@ void DU_send_UE_CONTEXT_SETUP_RESPONSE(void) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
-    return;
+    return -1;
   }
 
   printf("\n");
@@ -307,41 +309,41 @@ void DU_send_UE_CONTEXT_SETUP_RESPONSE(void) {
   //   printf("Failed to decode F1 setup request\n");
   // }
   //du_f1ap_itti_send_sctp_data_req(instance, f1ap_setup_req->assoc_id, buffer, len, 0);
+  return 0;
 }
 
-void DU_send_UE_CONTEXT_SETUP_FAILURE(F1AP_UEContextSetupFailure_t UEContextSetupFailure) {
+int DU_send_UE_CONTEXT_SETUP_FAILURE(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-/*
-    UE Context Release Request (gNB-DU initiated).
-*/
 
-void DU_send_UE_CONTEXT_RELEASE_REQUEST(F1AP_UEContextReleaseRequest_t *UEContextReleaseRequest) {
+int DU_send_UE_CONTEXT_RELEASE_REQUEST(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-void DU_handle_UE_CONTEXT_RELEASE_COMMAND(F1AP_UEContextReleaseCommand_t *UEContextReleaseCommand) {
+int DU_handle_UE_CONTEXT_RELEASE_COMMAND(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_UE_CONTEXT_RELEASE_COMPLETE(F1AP_UEContextReleaseComplete_t *UEContextReleaseComplete) {
+int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
 
-/*
-    UE Context Modification (gNB-CU initiated)
-*/
-
-void DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(F1AP_UEContextModificationRequest_t *UEContextModificationRequest) {
+int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(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_UE_CONTEXT_MODIFICATION_RESPONSE(F1AP_UEContextModificationResponse_t *UEContextModificationResponse) {
-void DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(void) {
+int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
   F1AP_F1AP_PDU_t                        pdu;
   F1AP_UEContextModificationResponse_t    *out;
   F1AP_UEContextModificationResponseIEs_t *ie;
@@ -687,7 +689,7 @@ void DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(void) {
   /* encode */
   if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     printf("Failed to encode F1 setup request\n");
-    return;
+    return -1;
   }
 
   printf("\n");
@@ -697,17 +699,21 @@ void DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(void) {
   //   printf("Failed to decode F1 setup request\n");
   // }
   //du_f1ap_itti_send_sctp_data_req(instance, f1ap_setup_req->assoc_id, buffer, len, 0);
+  return 0;
 
 }
 
-void DU_send_UE_CONTEXT_MODIFICATION_FAILURE(F1AP_UEContextModificationFailure_t UEContextModificationFailure) {
+int DU_send_UE_CONTEXT_MODIFICATION_FAILURE(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_send_UE_CONTEXT_MODIFICATION_REQUIRED(F1AP_UEContextModificationRequired_t *UEContextModificationRequired) {
+int DU_send_UE_CONTEXT_MODIFICATION_REQUIRED(instance_t instance) {
   AssertFatal(1==0,"Not implemented yet\n");
 }
 
-void DU_handle_UE_CONTEXT_MODIFICATION_CONFIRM(F1AP_UEContextModificationConfirm_t UEContextModificationConfirm_t) {
+int DU_handle_UE_CONTEXT_MODIFICATION_CONFIRM(instance_t       instance,
+                                              uint32_t         assoc_id,
+                                              uint32_t         stream,
+                                              F1AP_F1AP_PDU_t *pdu) {
   AssertFatal(1==0,"Not implemented yet\n");
-}
\ No newline at end of file
+}
diff --git a/openair2/F1AP/f1ap_du_ue_context_management.h b/openair2/F1AP/f1ap_du_ue_context_management.h
index 4771c1a66d087ddf82672ae80b56ff75072682cc..15e987209b241037e66299f4794e9e11c85bb4f8 100644
--- a/openair2/F1AP/f1ap_du_ue_context_management.h
+++ b/openair2/F1AP/f1ap_du_ue_context_management.h
@@ -33,4 +33,59 @@
 #ifndef F1AP_DU_UE_CONTEXT_MANAGEMENT_H_
 #define F1AP_DU_UE_CONTEXT_MANAGEMENT_H_
 
-#endif /* F1AP_DU_UE_CONTEXT_MANAGEMENT_H_ */
\ No newline at end of file
+/*
+ * UE Context Setup
+ */
+int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t       instance,
+                                       uint32_t         assoc_id,
+                                       uint32_t         stream,
+                                       F1AP_F1AP_PDU_t *pdu);
+int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance);
+int DU_send_UE_CONTEXT_SETUP_FAILURE(instance_t instance);
+
+
+/*
+ * UE Context Release Request (gNB-DU initiated)
+ */
+int DU_send_UE_CONTEXT_RELEASE_REQUEST(instance_t instance);
+
+
+/*
+ * UE Context Release (gNB-CU initiated)
+ */
+int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t       instance,
+                                         uint32_t         assoc_id,
+                                         uint32_t         stream,
+                                         F1AP_F1AP_PDU_t *pdu);
+int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance);
+
+
+/*
+ * UE Context Modification (gNB-CU initiated)
+ */
+int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t       instance,
+                                              uint32_t         assoc_id,
+                                              uint32_t         stream,
+                                              F1AP_F1AP_PDU_t *pdu);
+int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance);
+int DU_send_UE_CONTEXT_MODIFICATION_FAILURE(instance_t instance);
+
+
+/*
+ * UE Context Modification Required (gNB-DU initiated)
+ */
+int DU_send_UE_CONTEXT_MODIFICATION_REQUIRED(instance_t instance);
+int DU_handle_UE_CONTEXT_MODIFICATION_CONFIRM(instance_t       instance,
+                                              uint32_t         assoc_id,
+                                              uint32_t         stream,
+                                              F1AP_F1AP_PDU_t *pdu);
+
+/*
+ * UE Inactivity Notification
+ */
+
+/*
+ * Notify
+ */
+
+#endif /* F1AP_DU_UE_CONTEXT_MANAGEMENT_H_ */