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
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.