Commit 6f74d68b authored by matzakos's avatar matzakos

Fix ULSCH traffic generation at UE side. Still not received at gNB

parent 0c75e2ba
...@@ -178,23 +178,14 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE, ...@@ -178,23 +178,14 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
if (harq_process_ul_ue != NULL){ if (harq_process_ul_ue != NULL){
data_existing = 0; data_existing = 0;
if (IS_SOFTMODEM_NOS1){
if (IS_SOFTMODEM_NOS1){ data_existing = nr_ue_get_sdu(UE->Mod_id, UE->CC_id, frame,
data_existing = nr_ue_get_sdu(UE->Mod_id, UE->CC_id, frame, slot, 0, ulsch_input_buffer, harq_process_ul_ue->TBS/8, &access_mode);
slot, 0, ulsch_input_buffer, harq_process_ul_ue->TBS/8, &access_mode); //IP traffic to be transmitted
//IP traffic to be transmitted if(data_existing){
if(data_existing){ //harq_process_ul_ue->a = (unsigned char*)calloc(harq_process_ul_ue->TBS/8, sizeof(unsigned char));
//harq_process_ul_ue->a = (unsigned char*)calloc(harq_process_ul_ue->TBS/8, sizeof(unsigned char)); memcpy(harq_process_ul_ue->a, ulsch_input_buffer, harq_process_ul_ue->TBS/8);
memcpy(harq_process_ul_ue->a, ulsch_input_buffer, harq_process_ul_ue->TBS/8); }
#ifdef DEBUG_MAC_PDU
LOG_I(PHY, "Printing MAC PDU to be encoded, TBS is: %d \n", harq_process_ul_ue->TBS/8);
for (i = 0; i < harq_process_ul_ue->TBS / 8; i++) {
printf("0x%02x",harq_process_ul_ue->a[i]);
}
printf("\n");
#endif
}
} }
//Random traffic to be transmitted if there is no IP traffic available for this Tx opportunity //Random traffic to be transmitted if there is no IP traffic available for this Tx opportunity
if (!IS_SOFTMODEM_NOS1 || !data_existing) { if (!IS_SOFTMODEM_NOS1 || !data_existing) {
...@@ -202,15 +193,24 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE, ...@@ -202,15 +193,24 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
//and block this traffic from being forwarded to the upper layers at the gNB //and block this traffic from being forwarded to the upper layers at the gNB
uint16_t payload_offset = 5; uint16_t payload_offset = 5;
LOG_D(PHY, "Random data to be tranmsitted: \n"); 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
//Give the header bytes a dummy value (a value not corresponding to any valid LCID based on 38.321, Table 6.2.1-2)
//in order to block the random packet at the MAC layer of the receiver
for (i = 0; i<payload_offset; i++) for (i = 0; i<payload_offset; i++)
harq_process_ul_ue->a[i] = 0; harq_process_ul_ue->a[i] = 64;
for (i = payload_offset; i < harq_process_ul_ue->TBS / 8; i++) { for (i = payload_offset; i < harq_process_ul_ue->TBS / 8; i++) {
harq_process_ul_ue->a[i] = (unsigned char) rand(); harq_process_ul_ue->a[i] = (unsigned char) rand();
//printf(" input encoder a[%d]=0x%02x\n",i,harq_process_ul_ue->a[i]); //printf(" input encoder a[%d]=0x%02x\n",i,harq_process_ul_ue->a[i]);
} }
} }
#ifdef DEBUG_MAC_PDU
LOG_I(PHY, "Printing MAC PDU to be encoded, TBS is: %d \n", harq_process_ul_ue->TBS/8);
for (i = 0; i < harq_process_ul_ue->TBS / 8; i++) {
printf("0x%02x",harq_process_ul_ue->a[i]);
}
printf("\n");
#endif
} else { } else {
LOG_E(PHY, "[phy_procedures_nrUE_TX] harq_process_ul_ue is NULL !!\n"); LOG_E(PHY, "[phy_procedures_nrUE_TX] harq_process_ul_ue is NULL !!\n");
return; return;
......
...@@ -2243,7 +2243,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, ...@@ -2243,7 +2243,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
start_meas(&ue->phy_proc_tx); start_meas(&ue->phy_proc_tx);
#endif #endif
if (ue->UE_mode[gNB_id] == PUSCH ){ if (ue->UE_mode[gNB_id] == PUSCH || get_softmodem_params()->phy_test == 1){
nr_ue_ulsch_procedures(ue, harq_pid, frame_tx, slot_tx, thread_id, gNB_id); nr_ue_ulsch_procedures(ue, harq_pid, frame_tx, slot_tx, thread_id, gNB_id);
/* /*
......
...@@ -122,7 +122,7 @@ int nr_ue_ul_indication(nr_uplink_indication_t *ul_info){ ...@@ -122,7 +122,7 @@ int nr_ue_ul_indication(nr_uplink_indication_t *ul_info){
ul_info->frame_tx, ul_info->frame_tx,
ul_info->slot_tx); ul_info->slot_tx);
if (is_nr_UL_slot(mac->scc, ul_info->slot_tx)) if (is_nr_UL_slot(mac->scc, ul_info->slot_tx) && get_softmodem_params()->do_ra)
nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx); nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx);
switch(ret){ switch(ret){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment