1. 18 Nov, 2016 2 commits
    • Cedric Roux's avatar
      T: add a trace for PHICH · 2f74aead
      Cedric Roux authored
      2f74aead
    • Cedric Roux's avatar
      hotfix: correct PHICH generation · 88218d9a
      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.
      88218d9a
  2. 16 Nov, 2016 1 commit
    • Cedric Roux's avatar
      hotfix: turbo decoder should not fail if CRC is 0 · 52db1c33
      Cedric Roux authored
      The case of a CRC == 0 is legal.
      
      After discussion with Raymond, it is also possible to have all
      bits at 0 (and so a CRC==0) if there is no transmission and thus
      not much energy.
      
      So this hotfix may introduce new problems (false decoding).
      
      A future work is to handle this case properly by not calling the
      turbo decoder if there is not enough energy received.
      
      The problem might manifest itself more in the UE part, especially
      when it tries to decode MIB and/or SIB (if I understood correctly).
      52db1c33
  3. 14 Nov, 2016 2 commits
  4. 10 Nov, 2016 3 commits
  5. 08 Nov, 2016 1 commit
  6. 04 Nov, 2016 1 commit
  7. 03 Nov, 2016 5 commits
  8. 25 Oct, 2016 2 commits
  9. 21 Oct, 2016 1 commit
  10. 19 Oct, 2016 1 commit
  11. 18 Oct, 2016 2 commits
  12. 17 Oct, 2016 4 commits
  13. 13 Oct, 2016 1 commit
  14. 12 Oct, 2016 3 commits
  15. 11 Oct, 2016 7 commits
  16. 10 Oct, 2016 4 commits
    • Rohit Gupta's avatar
      570dc976
    • Cedric Roux's avatar
      issue 137 - remove hack: MCS reduction in case of CQI reporting · 60cc57de
      Cedric Roux authored
      This hack was probably put in place in an attempt to circumvent
      problems solved by previous commits.
      
      As far as I checked (with my knowledge of the day) we can't exhaust
      uplink physical bits with ULSCH data bits when there is CQI reporting
      at the same time.
      
      To be refined if this idea is proved wrong.
      60cc57de
    • Cedric Roux's avatar
      issue 137 - fix RI bits decoding · fb7b4d5a
      Cedric Roux authored
      RI bits are present only in some transmission modes.
      
      For aperiodic reporting (the mode we do as of today),
      36.213 7.2.1 (release 10) says:
      
          "RI is only reported for transmission modes 3 and 4,
          as well as transmission modes 8 and 9 with PMI/RI reporting"
      
      This commit activates decoding of RI bits only for transmission
      modes 3 and 4. 8 and 9 are not done today (as far as I know).
      fb7b4d5a
    • Cedric Roux's avatar
      issue 137 - correct computation of G · 25130d01
      Cedric Roux authored
      G was wrongly computed in some places, not taking into account
      CQI and RI bits. This commit saves the correct value computed
      in ulsch_decoding so we can reuse it in ulsch_decoding_data
      (and the like).
      
      Only the file openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c has
      been checked. If the computation is done somewhere else the
      problem might still exist.
      25130d01