• Cedric Roux's avatar
    This is a very basic fix, more work is needed. · f2b3597b
    Cedric Roux authored
    The problem seems that we reuse HARQ processes too early.
    For example, at subframe 0 we allocate PID 0. At subframe 4
    we receive an ACK. At subframe 5 we may well reallocate this
    PID. It seems category 3 UEs don't like that. They expect
    some delay. How much? I don't know. 8 maybe, as for UL.
    
    This commit forces allocation of HARQ PID:
      0 on subframe 1,
      1 on subframe 2,
      2 on subframe 3,
      3 on subframe 4,
      4 on subframe 6,
      5 on subframe 7,
      6 on subframe 8,
      7 on subframe 9.
    
    We don't use subframes 0 and 5 (for initial transmission at
    least). (Current develop branch doesn't either I think.)
    
    This is not a good solution, just a quick and dirty one. With this
    commit I can achieve 12Mbps with iperf UDP on a 5MHz band 7 carrier
    with a cat3 UE. And more than 11Mbps with iperf TCP. And a bad
    radio link.
    
    We may want to implement some sort of free-list and take the
    oldest PID in there, if it is older than let's say 8 subframes
    (that is: the last transmission with this pid was done more
    than 8 subframes ealier). We may well have no free PID if a
    lot of retransmissions are done.
    f2b3597b
phy_procedures_lte_eNb.c 187 KB