andre f1deb54a54 Prevent TCP sessions from stalling indefinitely in reassembly
when reaching the zone limit of reassembly queue entries.

When the zone limit was reached not even the missing segment
that would complete the sequence space could be processed
preventing the TCP session forever from making any further
progress.

Solve this deadlock by using a temporary on-stack queue entry
for the missing segment followed by an immediate dequeue again
by delivering the contiguous sequence space to the socket.

Add logging under net.inet.tcp.log_debug for reassembly queue
issues.

Reviewed by:	lsteward (previous version)
Tested by: 	Steven Hartland <killing-at-multiplay.co.uk>
MFC after:	3 days
2011-10-07 16:39:03 +00:00
..
2011-10-07 16:09:44 +00:00
2011-10-07 16:09:44 +00:00
2011-10-04 23:53:47 +00:00
2011-10-07 08:59:54 +00:00
2011-10-07 16:09:44 +00:00
2011-10-07 16:09:44 +00:00
MFC
2011-05-09 18:53:13 +00:00
2011-10-07 09:51:12 +00:00
2011-10-04 23:53:47 +00:00
2011-10-07 16:09:44 +00:00
2011-10-04 13:24:22 +00:00
2011-10-07 16:09:44 +00:00
2011-10-07 16:09:44 +00:00
2011-10-07 06:00:00 +00:00
2011-09-29 00:44:34 +00:00