The existing TCP reassembly code has issues in that:
- It is non-performant
- It can use large numbers of segment queues causing worse CPU performance if its limits are raised
- It does not coalesce properly
- It will at times not send back the right SACK information to the caller so that incorrect sack's will be generated.
This review is a rewrite of this to fix these issues and make the
reassembly code both more efficient and also correct the SACK issue.