]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: drop tunneled packet duplicates at reception
authorJon Paul Maloy <jon.maloy@ericsson.com>
Thu, 2 Apr 2015 13:33:00 +0000 (09:33 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 2 Apr 2015 20:27:12 +0000 (16:27 -0400)
commitad9cc8fc6e0f6c7316395c5ff2d9d59ce7ed2174
tree6a01a2fbb9828c072ad2518bb0f105b13b35f189
parenteb3ccd55fc1638c6ab9b8fec9f5ff621db36425c
tipc: drop tunneled packet duplicates at reception

In commit 5bdd21f1dda8c199457dce86cf84c808d0bc7ce9
("tipc: eliminate race condition at dual link establishment")
we introduced a parallel link synchronization mechanism that
guarentees sequential delivery even for users switching from
an old to a newly established link. The new mechanism makes it
unnecessary to deliver the tunneled duplicate packets back to
the old link, as we are currently doing. It is now sufficient
to use the last tunneled packet's inner sequence number as
synchronization point between the two parallel links, whereafter
it can be dropped.

In this commit, we drop the duplicate packets arriving on the new
link, after updating the synchronization point at each new arrival.

Although it would now have been sufficient for the other endpoint
to only tunnel the last packet in its send queue, and not the
entire queue, we must still do this to maintain compatibility
with older nodes.

This commit makes it possible to get rid if some complex
interaction between the two parallel links.

Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/link.c