From d90f8da36424f1af586397a9f86cb35e465a4c9e Mon Sep 17 00:00:00 2001 From: Sakthivel Velumani Date: Sat, 21 Mar 2020 18:43:50 +0100 Subject: [PATCH] avoiding code duplication --- openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c | 45 ++++++++-------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c index 586630aa66..3b6367e243 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c @@ -174,6 +174,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE, // to be removed later when MAC is ready if (harq_process_ul_ue != NULL){ + data_existing = 0; if (IS_SOFTMODEM_NOS1){ data_existing = nr_ue_get_sdu(UE->Mod_id, UE->CC_id, frame, @@ -191,38 +192,22 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE, printf("\n"); #endif } - //Random traffic to be transmitted if there is no IP traffic available for this Tx opportunity - else{ - //Use zeros for the header bytes in noS1 mode, in order to make sure that the LCID is not valid - //and block this traffic from being forwarded to the upper layers at the gNB - uint16_t payload_offset = 5; - LOG_D(PHY, "Random data to be tranmsitted: \n"); - //Give the header bytes some dummy value in order to block the random packet at the MAC layer of the receiver - for (i = 0; ia[i] = 0; + } + //Random traffic to be transmitted if there is no IP traffic available for this Tx opportunity + else if (!IS_SOFTMODEM_NOS1 || !data_existing) { + //Use zeros for the header bytes in noS1 mode, in order to make sure that the LCID is not valid + //and block this traffic from being forwarded to the upper layers at the gNB + uint16_t payload_offset = 5; + LOG_D(PHY, "Random data to be tranmsitted: \n"); + //Give the header bytes some dummy value in order to block the random packet at the MAC layer of the receiver + for (i = 0; ia[i] = 0; - for (i = payload_offset; i < harq_process_ul_ue->TBS / 8; i++) { - harq_process_ul_ue->a[i] = (unsigned char) rand(); - //printf(" input encoder a[%d]=0x%02x\n",i,harq_process_ul_ue->a[i]); - } - } - } - //else if(uplink_counter == 0){ //if(!IS_SOFTMODEM_NOS1){ - else{ - //Use zeros for the header bytes in noS1 mode, in order to make sure that the LCID is not valid - //and block this traffic from being forwarded to the upper layers at the gNB - uint16_t payload_offset = 5; - LOG_D(PHY, "Random data to be tranmsitted: \n"); - //Give the header bytes some dummy value in order to block the random packet at the MAC layer of the receiver - for (i = 0; ia[i] = 0; - - for (i = payload_offset; i < harq_process_ul_ue->TBS / 8; i++) { - harq_process_ul_ue->a[i] = (unsigned char) rand(); - //printf(" input encoder a[%d]=0x%02x\n",i,harq_process_ul_ue->a[i]); - } - //uplink_counter++; + for (i = payload_offset; i < harq_process_ul_ue->TBS / 8; i++) { + harq_process_ul_ue->a[i] = (unsigned char) rand(); + //printf(" input encoder a[%d]=0x%02x\n",i,harq_process_ul_ue->a[i]); } + } } else { LOG_E(PHY, "[phy_procedures_nrUE_TX] harq_process_ul_ue is NULL !!\n"); return;