Reverse the Rx processing order
First process PUSCH and then PRACH because the PUSCH callback is called before PRACH callback. Signed-off-by: Teodora Vladić <teodora.vladic@openairinterface.org>
This commit is contained in:
committed by
Romain Beurdouche
parent
d06bd3d49f
commit
84a1eb8b07
@@ -46,5 +46,5 @@ For PUSCH/PRACH, `oran_fh_if4p5_south_in()` calls `xran_fh_rx_read_slot()`/
|
||||
This is done through either a message queue, or through polling, which in both
|
||||
cases depends on xran calling the callbacks `oai_xran_fh_rx_callback()`/
|
||||
`oai_xran_fh_rx_prach_callback()` as installed during xran initialization.
|
||||
Once unblocked, it reads first PRACH data, then PUSCH data, before returning to
|
||||
Once unblocked, it reads first PUSCH data, then PRACH data, before returning to
|
||||
OAI.
|
||||
|
||||
+13
-13
@@ -277,19 +277,7 @@ void oran_fh_if4p5_south_in(RU_t *ru, int *frame, int *slot)
|
||||
.prach_buf = NULL,
|
||||
};
|
||||
|
||||
/* Firstly, process PRACH packets */
|
||||
int f_prach, sl_prach;
|
||||
#if defined F_RELEASE
|
||||
// no PRACH callback (no queue) in F release so use the expected combination
|
||||
f_prach = *frame;
|
||||
sl_prach = *slot;
|
||||
#endif
|
||||
ret = xran_fh_rx_prach_read_slot(ru->gNB_list[0], &ru_info, &f_prach, &sl_prach);
|
||||
if (ret != 0) {
|
||||
printf("ORAN: %d.%d ORAN_fh_if4p5_south_in ERROR in RX PRACH function \n", f_prach, sl_prach);
|
||||
}
|
||||
|
||||
/* Secondly, process PUSCH packets */
|
||||
/* Firstly, process PUSCH packets */
|
||||
RU_proc_t *proc = &ru->proc; // to check if (frame,slot) combination corresponds to the expected PUSCH one
|
||||
int f, sl;
|
||||
LOG_D(HW, "Read rxdataF %p,%p\n", ru_info.rxdataF[0], ru_info.rxdataF[1]);
|
||||
@@ -301,6 +289,18 @@ void oran_fh_if4p5_south_in(RU_t *ru, int *frame, int *slot)
|
||||
printf("ORAN: %d.%d ORAN_fh_if4p5_south_in ERROR in RX function \n", f, sl);
|
||||
}
|
||||
|
||||
/* Secondly, process PRACH packets */
|
||||
int f_prach, sl_prach;
|
||||
#if defined F_RELEASE
|
||||
// no PRACH callback (no queue) in F release so use the expected combination
|
||||
f_prach = *frame;
|
||||
sl_prach = *slot;
|
||||
#endif
|
||||
ret = xran_fh_rx_prach_read_slot(ru->gNB_list[0], &ru_info, &f_prach, &sl_prach);
|
||||
if (ret != 0) {
|
||||
printf("ORAN: %d.%d ORAN_fh_if4p5_south_in ERROR in RX PRACH function \n", f_prach, sl_prach);
|
||||
}
|
||||
|
||||
int slots_per_frame = 10 << (ru->openair0_cfg.nr_scs_for_raster);
|
||||
proc->tti_rx = sl;
|
||||
proc->frame_rx = f;
|
||||
|
||||
Reference in New Issue
Block a user