From: Ying X. <yin...@wi...> - 2012-11-02 10:46:48
|
eri...@er... wrote: > From: Erik Hugne <eri...@er...> > > There is a periodic per-link job running every [link tolerance] seconds. > This job performs a check on the active reassembly buffers, and if any > of these have not received a packet during the last 4 runs it will be > purged. This causes an inconsistency on the link level, since the > individual fragments from [1...(n-x)] have already been acked and > retransmission will only be done for packets [(n-x)...n]. > These "orphaned" fragments will be free'd when we cannot find an active > reassembly buffer for them. The end result of this is that the message > is lost silently on the link level. > > The selected solution for this is to remove the periodic check for stale > reassembly buffers. This is safe because the buffers are freed when > a link is reset and repeated reassembly failures will always cause a link > to reset. The reassembly timeout mechanism was originally introduced as > part of the (abandonded) effort to introduce multi-cluster functionality > where message could be routed between links. > > Signed-off-by: Erik Hugne <eri...@er...> > Acked-by: Ying Xue <yin...@wi...> |