Use f1ap_encoder.c file for F1AP encoding functionality
This commit is contained in:
@@ -543,6 +543,7 @@ add_library(F1AP
|
||||
#${F1AP_DIR}/test.c
|
||||
${F1AP_DIR}/DU_F1AP.c
|
||||
${F1AP_DIR}/CU_F1AP.c
|
||||
${F1AP_DIR}/f1ap_encoder.c
|
||||
${F1AP_DIR}/f1ap_decoder.c
|
||||
${F1AP_DIR}/f1ap_handlers.c
|
||||
${F1AP_DIR}/sctp_du.c
|
||||
|
||||
@@ -334,46 +334,6 @@ void CU_send_F1_SETUP_RESPONSE(void) {
|
||||
|
||||
}
|
||||
|
||||
int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length) {
|
||||
DevAssert(pdu != NULL);
|
||||
DevAssert(buffer != NULL);
|
||||
DevAssert(length != NULL);
|
||||
|
||||
|
||||
xer_fprint(stdout, &asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
|
||||
|
||||
ssize_t encoded;
|
||||
|
||||
// asn_DEF_F1AP_F1SetupRequest
|
||||
// asn_DEF_F1AP_F1AP_PDU
|
||||
|
||||
/* We can safely free list of IE from sptr */
|
||||
//ASN_STRUCT_FREE_CONTENTS_ONLY(&asn_DEF_F1AP_F1SetupRequest, pdu);
|
||||
|
||||
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_F1AP_F1AP_PDU, 0,
|
||||
pdu,
|
||||
|
||||
(void **)buffer)) < 0) {
|
||||
printf("\nencoded len = %ld\n", encoded);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("encoded len = %ld\n", encoded);
|
||||
printf("buffer = \n");
|
||||
|
||||
int i_ret;
|
||||
for (i_ret = 0; i_ret < encoded; i_ret++) {
|
||||
printf("%x ", *((*buffer)+i_ret));
|
||||
}
|
||||
printf("\n");
|
||||
*length = encoded;
|
||||
// ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
return encoded;
|
||||
}
|
||||
|
||||
|
||||
// int f1ap_decode_pdu(F1AP_F1AP_PDU_t *message, uint8_t *buffer, uint32_t length) {
|
||||
|
||||
// //LOG_I(F1AP,"Entering main loop of DU F1AP pdu receiver\n");
|
||||
|
||||
+2
-41
@@ -33,6 +33,8 @@
|
||||
#include "conversions.h"
|
||||
#include "f1ap_common.h"
|
||||
#include "du_f1ap_defs.h"
|
||||
#include "f1ap_encoder.h"
|
||||
#include "f1ap_decoder.h"
|
||||
#include "platform_types.h"
|
||||
#include "common/utils/LOG/log.h"
|
||||
#include "sctp_du.h"
|
||||
@@ -506,47 +508,6 @@ void DU_send_F1_SETUP_REQUEST(module_id_t enb_mod_idP, module_id_t du_mod_idP, f
|
||||
|
||||
}
|
||||
|
||||
// ==============================================================================
|
||||
|
||||
int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length) {
|
||||
DevAssert(pdu != NULL);
|
||||
DevAssert(buffer != NULL);
|
||||
DevAssert(length != NULL);
|
||||
|
||||
|
||||
xer_fprint(stdout, &asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
|
||||
|
||||
ssize_t encoded;
|
||||
|
||||
// asn_DEF_F1AP_F1SetupRequest
|
||||
// asn_DEF_F1AP_F1AP_PDU
|
||||
|
||||
/* We can safely free list of IE from sptr */
|
||||
//ASN_STRUCT_FREE_CONTENTS_ONLY(&asn_DEF_F1AP_F1SetupRequest, pdu);
|
||||
|
||||
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_F1AP_F1AP_PDU, 0,
|
||||
pdu,
|
||||
(void **)buffer)) < 0) {
|
||||
printf("encoded len = %ld\n", encoded);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("encoded len = %ld\n", encoded);
|
||||
printf("buffer = \n");
|
||||
|
||||
int i_ret;
|
||||
for (i_ret = 0; i_ret < encoded; i_ret++) {
|
||||
printf("%x ", *((*buffer)+i_ret));
|
||||
}
|
||||
printf("\n");
|
||||
*length = encoded;
|
||||
//ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
return encoded;
|
||||
}
|
||||
|
||||
|
||||
// int f1ap_decode_pdu(F1AP_F1AP_PDU_t *message, uint8_t *buffer, uint32_t length) {
|
||||
|
||||
// //LOG_I(F1AP,"Entering main loop of DU F1AP pdu receiver\n");
|
||||
|
||||
@@ -41,9 +41,9 @@
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "f1ap_common.h"
|
||||
#include "f1ap_ies_defs.h"
|
||||
#include "f1ap_encoder.h"
|
||||
|
||||
/*
|
||||
static inline int f1ap_encode_initiating(f1ap_message *message,
|
||||
uint8_t **buffer,
|
||||
uint32_t *len);
|
||||
@@ -77,32 +77,29 @@ int f1ap_encode_ue_context_release_request(
|
||||
F1ap_UEContextReleaseRequestIEs_t *f1ap_UEContextReleaseRequestIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
*/
|
||||
|
||||
int f1ap_encode_pdu(f1ap_message *message, uint8_t **buffer, uint32_t *len)
|
||||
int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
DevAssert(message != NULL);
|
||||
ssize_t encoded;
|
||||
DevAssert(pdu != NULL);
|
||||
DevAssert(buffer != NULL);
|
||||
DevAssert(len != NULL);
|
||||
DevAssert(length != NULL);
|
||||
|
||||
switch(message->direction) { // Need Check (present)?
|
||||
case F1AP_F1AP_PDU_PR_initiatingMessage:
|
||||
return f1ap_encode_initiating(message, buffer, len);
|
||||
//xer_fprint(stdout, &asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
encoded = aper_encode_to_new_buffer(&asn_DEF_F1AP_F1AP_PDU, 0, pdu, (void **)buffer);
|
||||
|
||||
case F1AP_F1AP_PDU_PR_successfulOutcome:
|
||||
return f1ap_encode_successfull_outcome(message, buffer, len);
|
||||
|
||||
case F1AP_F1AP_PDU_PR_unsuccessfulOutcome:
|
||||
return f1ap_encode_unsuccessfull_outcome(message, buffer, len);
|
||||
|
||||
default:
|
||||
F1AP_DEBUG("Unknown message outcome (%d) or not implemented",
|
||||
(int)message->direction);
|
||||
break;
|
||||
if (encoded < 0) {
|
||||
LOG_E(F1AP, "Failed to encode F1AP message\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
*length = encoded;
|
||||
/* Is the following needed? I moved the code here from CU_F1AP.c/DU_F1AP.c */
|
||||
// ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_F1AP_F1AP_PDU, pdu);
|
||||
return encoded;
|
||||
}
|
||||
|
||||
/*
|
||||
static inline
|
||||
int f1ap_encode_initiating(f1ap_message *f1ap_message_p,
|
||||
uint8_t **buffer, uint32_t *len)
|
||||
@@ -379,4 +376,4 @@ int f1ap_encode_ue_context_release_request(
|
||||
&asn_DEF_F1ap_UEContextReleaseRequest,
|
||||
ue_context_release_request_p);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user