From 2403529e7695271beaedc0cbe8700eb972aee7ba Mon Sep 17 00:00:00 2001 From: Tien-Thinh Nguyen <tien-thinh.nguyen@eurecom.fr> Date: Mon, 22 Jan 2018 16:52:16 +0100 Subject: [PATCH] fix issues related to PC5D transmission/reception --- openair2/LAYER2/MAC/ue_procedures.c | 8 +++++--- openair2/RRC/LITE/L2_interface.c | 1 + openair2/RRC/LITE/rrc_UE.c | 13 +++++++++---- targets/RT/USER/lte-ue.c | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c index 7ebcb08f1b6..bf629e55ee1 100644 --- a/openair2/LAYER2/MAC/ue_procedures.c +++ b/openair2/LAYER2/MAC/ue_procedures.c @@ -797,9 +797,11 @@ void ue_send_sl_sdu(module_id_t module_idP, NULL); } else { //SL_DISCOVERY - LOG_I( MAC, "SL DISCOVERY \n"); - //call mac_rrc_data_ind - uint16_t len; + //call mac_rrc_data_ind + uint16_t len = sdu_len; + printf("SL DISCOVERY: "); + for (int i=0;i<len;i++) printf("%x ",((uint8_t*)sdu)[i]); + printf("\n"); mac_rrc_data_ind(module_idP, CC_id, frameP,subframeP, diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index 2fbe6bec44a..9493cbfeaa0 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -515,6 +515,7 @@ mac_rrc_data_ind( //TTN (for D2D) if(srb_idP == SL_DISCOVERY) { + LOG_I(RRC,"[UE %d] Received SDU (%d bytes) for SL_DISCOVERY on SRB %d from eNB %d\n",module_idP, sdu_lenP, srb_idP,eNB_indexP); decode_SL_Discovery_Message(&ctxt, eNB_indexP, sduP, sdu_lenP); } diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c index 937a10c5a17..dee7159d9c7 100644 --- a/openair2/RRC/LITE/rrc_UE.c +++ b/openair2/RRC/LITE/rrc_UE.c @@ -5837,7 +5837,9 @@ int decode_SL_Discovery_Message( int prose_addr_len; char send_buf[BUFSIZE]; int n; + struct sidelink_ctrl_element *sl_ctrl_msg_recv = NULL; + LOG_I(RRC,"[decode_SL_Discovery_Message] received %d bytes (sizeof(struct sidelink_ctrl_element) %d)\n",Sdu_len, sizeof(struct sidelink_ctrl_element)); //from the main program, listen for the incoming messages from control socket (ProSe App) prose_addr_len = sizeof(prose_app_addr); @@ -5845,18 +5847,21 @@ int decode_SL_Discovery_Message( memcpy((void*)&UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.Payload[0], (void*)Sdu, Sdu_len); UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.payload_size = Sdu_len; + sl_ctrl_msg_recv = calloc(1, sizeof(struct sidelink_ctrl_element)); + memcpy((void *)sl_ctrl_msg_recv, (void *)Sdu, sizeof(struct sidelink_ctrl_element)); + LOG_I(RRC,"[decode_SL_Discovery_Message] Message type %d\n", sl_ctrl_msg_recv->type); + memset(send_buf, 0, BUFSIZE); //send to ProSeApp memcpy((void *)send_buf, (void*)Sdu, Sdu_len); prose_addr_len = sizeof(prose_app_addr); n = sendto(ctrl_sock_fd, (char *)send_buf, Sdu_len, 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); -// free(sl_ctrl_msg_send); + if (n < 0){ LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); + //exit(EXIT_FAILURE); } - - + free(sl_ctrl_msg_recv); return(0); } diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 2cfaac41604..d5a6b0eb65a 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -805,7 +805,7 @@ void ue_stub_rx_handler(unsigned int num_bytes, char *rx_buffer) { 0, pdu->header.absSF/10, pdu->header.absSF%10, - pdu->payload, + sldch->payload, sldch->payload_length, 0, SL_DISCOVERY_FLAG_YES); -- GitLab