• Cedric Roux's avatar
    bugfix: fix bug "Unknown UE_id for rnti" · 8d5901c8
    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
eNB_scheduler_ulsch.c 59.9 KB