Skip to content

Commit 6ef9dcb

Browse files
Tung Nguyendavem330
authored andcommitted
tipc: allow to build NACK message in link timeout function
Commit 0228824 ("tipc: eliminate gap indicator from ACK messages") eliminated sending of the 'gap' indicator in regular ACK messages and only allowed to build NACK message with enabled probe/probe_reply. However, necessary correction for building NACK message was missed in tipc_link_timeout() function. This leads to significant delay and link reset (due to retransmission failure) in lossy environment. This commit fixes it by setting the 'probe' flag to 'true' when the receive deferred queue is not empty. As a result, NACK message will be built to send back to another peer. Fixes: 0228824 ("tipc: eliminate gap indicator from ACK messages") Acked-by: Jon Maloy <[email protected]> Signed-off-by: Tung Nguyen <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent db44c60 commit 6ef9dcb

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

net/tipc/link.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,11 +827,11 @@ int tipc_link_timeout(struct tipc_link *l, struct sk_buff_head *xmitq)
827827
state |= l->bc_rcvlink->rcv_unacked;
828828
state |= l->rcv_unacked;
829829
state |= !skb_queue_empty(&l->transmq);
830-
state |= !skb_queue_empty(&l->deferdq);
831830
probe = mstate->probing;
832831
probe |= l->silent_intv_cnt;
833832
if (probe || mstate->monitoring)
834833
l->silent_intv_cnt++;
834+
probe |= !skb_queue_empty(&l->deferdq);
835835
if (l->snd_nxt == l->checkpoint) {
836836
tipc_link_update_cwin(l, 0, 0);
837837
probe = true;

0 commit comments

Comments
 (0)