• Cedric Roux's avatar
    hotfix: better CQI requests, especially for TDD · 2a7ac81b
    Cedric Roux authored
    In TDD mode, CQI requests are not possible in special subframes (at
    least for some TDD configurations, see 36.213 7.2.3 that says "a
    DL subframe is valid if it does not contain a DwPTS field if the
    length is less than  7680 Ts").
    
    In the code, we simply disable CQI requests in special subframes,
    no matter what the length of DwPTS.
    
    A problem can arise if the DCI0 for a given UE are sent only in
    those special subframes. In this case the UE will never report
    CQI and the eNB will use low MCS for this UE, impacting performances.
    
    Another, related, problem is when there are several UEs. There again
    one UE might always get its DCI0 in special subframes and thus never
    report CQI. There again, performance issues.
    
    This commit is an attempt to improve the situation.
    
    It does two things.
    
    1 - tag the UE as schedulable in the function UE_is_to_be_scheduled
        if the cqi_req_timer is expired
    
    2 - use cqi_req_timer as a criterium when ordering UEs for UL scheduling
    
    The value chosen for the expiration of the cqi_req_timer in
    UE_is_to_be_scheduled is quite high (300) because as the code is
    today we may overschedule the UE for short bursts until we receive
    a CQI from the UE. [TODO: fix the code properly to avoid this behavior.]
    
    Note: the fairRR scheduler has not been analyzed and this commit may
          not fix anything in case the fairRR scheduler is used.
    2a7ac81b
eNB_scheduler_primitives.c 185 KB