]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: adapt link failover for new Gap-ACK algorithm
authorTuong Lien <tuong.t.lien@dektech.com.au>
Thu, 4 Apr 2019 04:09:53 +0000 (11:09 +0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Apr 2019 01:29:25 +0000 (18:29 -0700)
commit441abeb9c9ccd62fde627b57f6584485b3d7e1ad
treeeb2b99d9b5a9e4b67f8b110fed5b0106d6e548c0
parent18d6c7aafa7bac4d4e98aa1d0c3234e8da1d6153
tipc: adapt link failover for new Gap-ACK algorithm

In commit 0ae955e2656d ("tipc: improve TIPC throughput by Gap ACK
blocks"), we enhance the link transmq by releasing as many packets as
possible with the multi-ACKs from peer node. This also means the queue
is now non-linear and the peer link deferdq becomes vital.

Whereas, in the case of link failover, all messages in the link transmq
need to be transmitted as tunnel messages in such a way that message
sequentiality and cardinality per sender is preserved. This requires us
to maintain the link deferdq somehow, so that when the tunnel messages
arrive, the inner user messages along with the ones in the deferdq will
be delivered to upper layer correctly.

The commit accomplishes this by defining a new queue in the TIPC link
structure to hold the old link deferdq when link failover happens and
process it upon receipt of tunnel messages.

Also, in the case of link syncing, the link deferdq will not be purged
to avoid unnecessary retransmissions that in the worst case will fail
because the packets might have been freed on the sending side.

Acked-by: Ying Xue <ying.xue@windriver.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/link.c