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?