]> git.baikalelectronics.ru Git - kernel.git/commit
tipc: enable broadcast retrans via unicast
authorTuong Lien <tuong.t.lien@dektech.com.au>
Tue, 26 May 2020 09:38:36 +0000 (16:38 +0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 May 2020 22:16:52 +0000 (15:16 -0700)
commit0690cedb21ba83c88f4a3f7ea758c506f0dc075c
treef871946430b622fba0cb9acae24613138e78d700
parentdeecf6cc31e84e272c9cd6cd617455e85ba6e761
tipc: enable broadcast retrans via unicast

In some environment, broadcast traffic is suppressed at high rate (i.e.
a kind of bandwidth limit setting). When it is applied, TIPC broadcast
can still run successfully. However, when it comes to a high load, some
packets will be dropped first and TIPC tries to retransmit them but the
packet retransmission is intentionally broadcast too, so making things
worse and not helpful at all.

This commit enables the broadcast retransmission via unicast which only
retransmits packets to the specific peer that has really reported a gap
i.e. not broadcasting to all nodes in the cluster, so will prevent from
being suppressed, and also reduce some overheads on the other peers due
to duplicates, finally improve the overall TIPC broadcast performance.

Note: the functionality can be turned on/off via the sysctl file:

echo 1 > /proc/sys/net/tipc/bc_retruni
echo 0 > /proc/sys/net/tipc/bc_retruni

Default is '0', i.e. the broadcast retransmission still works as usual.

Acked-by: Ying Xue <ying.xue@windriver.com>
Acked-by: Jon Maloy <jmaloy@redhat.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/bcast.c
net/tipc/bcast.h
net/tipc/link.c
net/tipc/link.h
net/tipc/node.c
net/tipc/sysctl.c