Skip to content

Commit 0557227

Browse files
Hoang Ledavem330
authored andcommitted
tipc: fix uninitialized value for broadcast retransmission
When sending broadcast message on high load system, there are a lot of unnecessary packets restranmission. That issue was caused by missing in initial criteria for retransmission. To prevent this happen, just initialize this criteria for retransmission in next 10 milliseconds. Fixes: 31c4f4c ("tipc: improve broadcast retransmission algorithm") Acked-by: Ying Xue <[email protected]> Acked-by: Jon Maloy <[email protected]> Signed-off-by: Hoang Le <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 013dc9d commit 0557227

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

net/tipc/link.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,10 @@ int tipc_link_xmit(struct tipc_link *l, struct sk_buff_head *list,
967967
}
968968
__skb_dequeue(list);
969969
__skb_queue_tail(transmq, skb);
970+
/* next retransmit attempt */
971+
if (link_is_bc_sndlink(l))
972+
TIPC_SKB_CB(skb)->nxt_retr =
973+
jiffies + TIPC_BC_RETR_LIM;
970974
__skb_queue_tail(xmitq, _skb);
971975
TIPC_SKB_CB(skb)->ackers = l->ackers;
972976
l->rcv_unacked = 0;
@@ -1014,6 +1018,10 @@ static void tipc_link_advance_backlog(struct tipc_link *l,
10141018
hdr = buf_msg(skb);
10151019
l->backlog[msg_importance(hdr)].len--;
10161020
__skb_queue_tail(&l->transmq, skb);
1021+
/* next retransmit attempt */
1022+
if (link_is_bc_sndlink(l))
1023+
TIPC_SKB_CB(skb)->nxt_retr = jiffies + TIPC_BC_RETR_LIM;
1024+
10171025
__skb_queue_tail(xmitq, _skb);
10181026
TIPC_SKB_CB(skb)->ackers = l->ackers;
10191027
msg_set_seqno(hdr, seqno);

0 commit comments

Comments
 (0)