aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/link.h
diff options
context:
space:
mode:
authorJon Paul Maloy <jon.maloy@ericsson.com>2015-10-22 08:51:40 -0400
committerDavid S. Miller <davem@davemloft.net>2015-10-24 09:56:35 -0400
commitfd556f209af53b9cdc45df8c467feb235376c4df (patch)
treeabca98757b551a23d08dd80ca3b72a1d3ac7a564 /net/tipc/link.h
parent2f566124570625c29c3fd79bac4d9cd97c0c31a1 (diff)
tipc: introduce capability bit for broadcast synchronization
Until now, we have tried to support both the newer, dedicated broadcast synchronization mechanism along with the older, less safe, RESET_MSG/ ACTIVATE_MSG based one. The latter method has turned out to be a hazard in a highly dynamic cluster, so we find it safer to disable it completely when we find that the former mechanism is supported by the peer node. For this purpose, we now introduce a new capabability bit, TIPC_BCAST_SYNCH, to inform any peer nodes that dedicated broadcast syncronization is supported by the present node. The new bit is conveyed between peers in the 'capabilities' field of neighbor discovery messages. Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/link.h')
-rw-r--r--net/tipc/link.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/tipc/link.h b/net/tipc/link.h
index 9c4acc26b3b1..d23329db4b25 100644
--- a/net/tipc/link.h
+++ b/net/tipc/link.h
@@ -119,6 +119,7 @@ struct tipc_stats {
119 * @keepalive_intv: link keepalive timer interval 119 * @keepalive_intv: link keepalive timer interval
120 * @abort_limit: # of unacknowledged continuity probes needed to reset link 120 * @abort_limit: # of unacknowledged continuity probes needed to reset link
121 * @state: current state of link FSM 121 * @state: current state of link FSM
122 * @peer_caps: bitmap describing capabilities of peer node
122 * @silent_intv_cnt: # of timer intervals without any reception from peer 123 * @silent_intv_cnt: # of timer intervals without any reception from peer
123 * @proto_msg: template for control messages generated by link 124 * @proto_msg: template for control messages generated by link
124 * @pmsg: convenience pointer to "proto_msg" field 125 * @pmsg: convenience pointer to "proto_msg" field
@@ -162,6 +163,7 @@ struct tipc_link {
162 unsigned long keepalive_intv; 163 unsigned long keepalive_intv;
163 u32 abort_limit; 164 u32 abort_limit;
164 u32 state; 165 u32 state;
166 u16 peer_caps;
165 u32 silent_intv_cnt; 167 u32 silent_intv_cnt;
166 struct { 168 struct {
167 unchar hdr[INT_H_SIZE]; 169 unchar hdr[INT_H_SIZE];
@@ -215,11 +217,11 @@ struct tipc_link {
215bool tipc_link_create(struct tipc_node *n, char *if_name, int bearer_id, 217bool tipc_link_create(struct tipc_node *n, char *if_name, int bearer_id,
216 int tolerance, char net_plane, u32 mtu, int priority, 218 int tolerance, char net_plane, u32 mtu, int priority,
217 int window, u32 session, u32 ownnode, u32 peer, 219 int window, u32 session, u32 ownnode, u32 peer,
218 struct tipc_media_addr *maddr, 220 u16 peer_caps, struct tipc_media_addr *maddr,
219 struct sk_buff_head *inputq, struct sk_buff_head *namedq, 221 struct sk_buff_head *inputq, struct sk_buff_head *namedq,
220 struct tipc_link **link); 222 struct tipc_link **link);
221bool tipc_link_bc_create(struct tipc_node *n, int mtu, int window, 223bool tipc_link_bc_create(struct tipc_node *n, int mtu, int window,
222 struct sk_buff_head *inputq, 224 u16 peer_caps, struct sk_buff_head *inputq,
223 struct sk_buff_head *namedq, 225 struct sk_buff_head *namedq,
224 struct tipc_link **link); 226 struct tipc_link **link);
225void tipc_link_tnl_prepare(struct tipc_link *l, struct tipc_link *tnl, 227void tipc_link_tnl_prepare(struct tipc_link *l, struct tipc_link *tnl,