I'm planning on using the reorder buffer and been running a few tests on it in a small test program.
One scenario is that a few packets are sent to the buffer in order; for example seq # 1 2 3.
then the next batch miss a seq #. the next batch has seq # 5 6 7.
upon a drain, packets 1, 2, 3 come out but the reorder buffer holds on to 5 6 7 and they never come out.
I think if more packets are sent to the reorder buffer, at some point the seq # exceeds the top of the window and packets 5, 6, ... start to come out.
But if no packets are sent, 5, 6, 7 are stuck.
Is what I'm seeing the expected behavior?
If so, I believe there needs to be a time out feature implemented in the reorder to skip over missing packets in order to keep things moving.
Is there a way to get some feedback from folks who implemented this feature?