Fix ULSCH traffic generation at UE side. Still not received at gNB
This commit is contained in:
@@ -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,
|
|||||||
//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,
|
|||||||
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){
|
|||||||
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){
|
||||||
|
|||||||
Reference in New Issue
Block a user