diff options
author | Zhenbo Gao <zhenbo.gao@windriver.com> | 2018-12-18 04:43:52 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-19 00:50:48 -0500 |
commit | 5679ee784c89793537d233022b55a331a64aed9d (patch) | |
tree | a2022268b413b1f80d31dea8846066aa101cca98 /net/tipc/node.c | |
parent | 935b8a59ac80bf3d3caae6460fb95d028f7c92c8 (diff) |
tipc: handle broadcast NAME_DISTRIBUTOR packet when receiving it
NAME_DISTRIBUTOR messages are transmitted through unicast link on TIPC
2.0, by contrast, the messages are delivered through broadcast link on
TIPC 1.7. But at present, NAME_DISTRIBUTOR messages received by
broadcast link cannot be handled in tipc_rcv() until an unicast message
arrives, which may lead to a significant delay to update name table.
To avoid this delay, we will also deal with broadcast NAME_DISTRIBUTOR
message on broadcast receive path.
Signed-off-by: Zhenbo Gao <zhenbo.gao@windriver.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index 32556f480a60..5980abb7839b 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -1549,6 +1549,10 @@ static void tipc_node_bc_rcv(struct net *net, struct sk_buff *skb, int bearer_id | |||
1549 | if (!skb_queue_empty(&be->inputq1)) | 1549 | if (!skb_queue_empty(&be->inputq1)) |
1550 | tipc_node_mcast_rcv(n); | 1550 | tipc_node_mcast_rcv(n); |
1551 | 1551 | ||
1552 | /* Handle NAME_DISTRIBUTOR messages sent from 1.7 nodes */ | ||
1553 | if (!skb_queue_empty(&n->bc_entry.namedq)) | ||
1554 | tipc_named_rcv(net, &n->bc_entry.namedq); | ||
1555 | |||
1552 | /* If reassembly or retransmission failure => reset all links to peer */ | 1556 | /* If reassembly or retransmission failure => reset all links to peer */ |
1553 | if (rc & TIPC_LINK_DOWN_EVT) | 1557 | if (rc & TIPC_LINK_DOWN_EVT) |
1554 | tipc_node_reset_links(n); | 1558 | tipc_node_reset_links(n); |