From 20a0e8b5231a0368f51432dfa8b8029020addef2 Mon Sep 17 00:00:00 2001 From: Lionel Gauthier <lionel.gauthier@eurecom.fr> Date: Wed, 5 Nov 2014 10:37:50 +0000 Subject: [PATCH] Use itti for tunneling to GTPU from PDCP git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5971 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair2/LAYER2/PDCP_v10.1.0/pdcp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c index eed515f980..72a879bba2 100755 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c @@ -411,9 +411,11 @@ boolean_t pdcp_data_ind( uint8_t pdcp_tailer_len = 0; pdcp_sn_t sequence_number = 0; volatile sdu_size_t payload_offset = 0; - rb_id_t rb_id = rb_idP; + rb_id_t rb_id = rb_idP; boolean_t packet_forwarded = FALSE; - +#if defined(LINK_PDCP_TO_GTPV1U) + MessageDef *message_p = NULL; +#endif #ifdef OAI_EMU @@ -690,13 +692,23 @@ boolean_t pdcp_data_ind( #if defined(LINK_PDCP_TO_GTPV1U) if ((TRUE == enb_flagP) && (FALSE == srb_flagP)) { LOG_I(PDCP,"Sending to GTPV1U %d bytes\n", sdu_buffer_sizeP - payload_offset); - - gtpv1u_new_data_req( + gtpu_buffer = itti_malloc(TASK_PDCP_ENB, TASK_GTPV1_U, sdu_buffer_sizeP - payload_offset); + AssertFatal(gtpu_buffer != NULL, "OUT OF MEMORY"); + memcpy(gtpu_buffer, &sdu_buffer_pP->data[payload_offset], sdu_buffer_sizeP - payload_offset); + message_p = itti_alloc_new_message(TASK_PDCP_ENB, GTPV1U_TUNNEL_DATA_REQ); + AssertFatal(message_p != NULL, "OUT OF MEMORY"); + GTPV1U_TUNNEL_DATA_REQ(message_p).buffer = gtpu_buffer); + GTPV1U_TUNNEL_DATA_REQ(message_p).length = sdu_buffer_sizeP - payload_offset; + GTPV1U_TUNNEL_DATA_REQ(message_p).ue_module_id = ue_mod_idP; + GTPV1U_TUNNEL_DATA_REQ(message_p).rab_id; = rb_id + 4; + itti_send_msg_to_task(TASK_GTPV1_U, INSTANCE_DEFAULT, message_p); + /*gtpv1u_new_data_req( enb_mod_idP, //gtpv1u_data_t *gtpv1u_data_p, ue_mod_idP,//rb_id/maxDRB, TO DO UE ID rb_id + 4, &sdu_buffer_pP->data[payload_offset], sdu_buffer_sizeP - payload_offset); + */ packet_forwarded = TRUE; } #else -- GitLab