mirror of https://gitee.com/openkylin/linux.git
tipc: allow to build NACK message in link timeout function
Commit02288248b0
("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:02288248b0
("tipc: eliminate gap indicator from ACK messages") Acked-by: Jon Maloy <jmaloy@redhat.com> Signed-off-by: Tung Nguyen <tung.q.nguyen@dektech.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
db44c60c45
commit
6ef9dcb780
|
@ -827,11 +827,11 @@ int tipc_link_timeout(struct tipc_link *l, struct sk_buff_head *xmitq)
|
|||
state |= l->bc_rcvlink->rcv_unacked;
|
||||
state |= l->rcv_unacked;
|
||||
state |= !skb_queue_empty(&l->transmq);
|
||||
state |= !skb_queue_empty(&l->deferdq);
|
||||
probe = mstate->probing;
|
||||
probe |= l->silent_intv_cnt;
|
||||
if (probe || mstate->monitoring)
|
||||
l->silent_intv_cnt++;
|
||||
probe |= !skb_queue_empty(&l->deferdq);
|
||||
if (l->snd_nxt == l->checkpoint) {
|
||||
tipc_link_update_cwin(l, 0, 0);
|
||||
probe = true;
|
||||
|
|
Loading…
Reference in New Issue