-
Cedric Roux authored
This bug happens when we detect uplink failure for one UE. In this case, a DCI format 1A is sent to the UE to ask it to do random acces. The way this DCI is generated was not compatible with how the software is organized. It was expected that the DCI are added (with add_ue_spec_dci and add_common_dci) in a very specific order: first all DCIs in common space are added (with add_common_dci) then all DCIs in UE specific space are added (with add_ue_spec_dci). The problem was that the DCI format 1A DCI sent to the UE for it to do random access is added (with add_ue_spec_dci) before the DCIs in common space. That totally messed up the logic in add_common_dci and add_ue_spec_dci. The solution is to get rid of Num_common_dci and Num_ue_spec_dci, replace those two counters by only one (Num_dci) and add "search_space" in the dci_alloc structure to be used later by the function "allocate_CCEs" when calling "get_nCCE_offset". The software had to be adapted to the new variables, everywhere. I am not sure that the simulators work. It seems that some of them didn't use Num_common_dci and Num_ue_spec_dci to decide on what space (common or UE specific) to put the DCI, but relied on the rnti (comparing with SI_RNTI). To be tested properly. The modified simulators are: - openair1/SIMULATION/LTE_PHY/dlsim.c - openair1/SIMULATION/LTE_PHY/dlsim_tm4.c - openair1/SIMULATION/LTE_PHY/dlsim_tm7.c - openair1/SIMULATION/LTE_PHY/framegen.c - openair1/SIMULATION/LTE_PHY/pdcchsim.c - openair1/SIMULATION/LTE_PHY/syncsim.c
8d5901c8