• Cedric Roux's avatar
    hotfix: correct PHICH generation · 64615dcc
    Cedric Roux authored
    The PHICH generation is wrong.
    HARQ process X is uplink scheduled at TTI n.
    At TTI n+4 the eNB receives the data.
    At TTI n+8 the eNB sends ACK/NACK on the PHICH.
    
    The problem is that PHICH generation is done after scheduling.
    And PHICH generation uses "first_rb" and "n_DMRS" to compute
    "ngroup_PHICH" and "nseq_PHICH".
    
    So at TTI n+8 if the eNB has reused the HARQ process X for
    a new uplink scheduling the values "first_rb" and "n_DMRS"
    may have changed.
    
    We need to use the previous values.
    
    One solution would have been to do PHICH generation before
    scheduling. The problem is that "generate_phich_top" does more
    than PHICH generation. It has to setup parameters to sort of
    "emulate" a DCI0 in case of retransmission scheduled without
    DCI0. So part of it has to be done after scheduling. We would
    have to split the function.
    
    The simple adopted fix is to store old values of "first_rb"
    and "n_DMRS" and use those values in "generate_phich_top".
    
    This fix has only been tested with FDD. TDD may miserably fail.
    64615dcc
Name
Last commit
Last update
cmake_targets Loading commit data...
common/utils Loading commit data...
openair1 Loading commit data...
openair2 Loading commit data...
openair3 Loading commit data...
svn2git Loading commit data...
targets Loading commit data...
.gitlab-ci.yml Loading commit data...
LICENSE Loading commit data...
NOTICE.txt Loading commit data...
README.txt Loading commit data...
maketags Loading commit data...
oaienv Loading commit data...