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_ */