aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/node.h')
-rw-r--r--net/tipc/node.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/net/tipc/node.h b/net/tipc/node.h
index 43ef88ef3035..20ec13f9bede 100644
--- a/net/tipc/node.h
+++ b/net/tipc/node.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * net/tipc/node.h: Include file for TIPC node management routines 2 * net/tipc/node.h: Include file for TIPC node management routines
3 * 3 *
4 * Copyright (c) 2000-2006, 2014, Ericsson AB 4 * Copyright (c) 2000-2006, 2014-2015, Ericsson AB
5 * Copyright (c) 2005, 2010-2014, Wind River Systems 5 * Copyright (c) 2005, 2010-2014, Wind River Systems
6 * All rights reserved. 6 * All rights reserved.
7 * 7 *
@@ -55,14 +55,16 @@
55 * TIPC_DISTRIBUTE_NAME: publish or withdraw link state name type 55 * TIPC_DISTRIBUTE_NAME: publish or withdraw link state name type
56 */ 56 */
57enum { 57enum {
58 TIPC_MSG_EVT = 1,
58 TIPC_WAIT_PEER_LINKS_DOWN = (1 << 1), 59 TIPC_WAIT_PEER_LINKS_DOWN = (1 << 1),
59 TIPC_WAIT_OWN_LINKS_DOWN = (1 << 2), 60 TIPC_WAIT_OWN_LINKS_DOWN = (1 << 2),
60 TIPC_NOTIFY_NODE_DOWN = (1 << 3), 61 TIPC_NOTIFY_NODE_DOWN = (1 << 3),
61 TIPC_NOTIFY_NODE_UP = (1 << 4), 62 TIPC_NOTIFY_NODE_UP = (1 << 4),
62 TIPC_WAKEUP_USERS = (1 << 5), 63 TIPC_WAKEUP_BCAST_USERS = (1 << 5),
63 TIPC_WAKEUP_BCAST_USERS = (1 << 6), 64 TIPC_NOTIFY_LINK_UP = (1 << 6),
64 TIPC_NOTIFY_LINK_UP = (1 << 7), 65 TIPC_NOTIFY_LINK_DOWN = (1 << 7),
65 TIPC_NOTIFY_LINK_DOWN = (1 << 8) 66 TIPC_NAMED_MSG_EVT = (1 << 8),
67 TIPC_BCAST_MSG_EVT = (1 << 9)
66}; 68};
67 69
68/** 70/**
@@ -73,6 +75,7 @@ enum {
73 * @oos_state: state tracker for handling OOS b'cast messages 75 * @oos_state: state tracker for handling OOS b'cast messages
74 * @deferred_queue: deferred queue saved OOS b'cast message received from node 76 * @deferred_queue: deferred queue saved OOS b'cast message received from node
75 * @reasm_buf: broadcast reassembly queue head from node 77 * @reasm_buf: broadcast reassembly queue head from node
78 * @inputq_map: bitmap indicating which inqueues should be kicked
76 * @recv_permitted: true if node is allowed to receive b'cast messages 79 * @recv_permitted: true if node is allowed to receive b'cast messages
77 */ 80 */
78struct tipc_node_bclink { 81struct tipc_node_bclink {
@@ -83,6 +86,7 @@ struct tipc_node_bclink {
83 u32 deferred_size; 86 u32 deferred_size;
84 struct sk_buff_head deferred_queue; 87 struct sk_buff_head deferred_queue;
85 struct sk_buff *reasm_buf; 88 struct sk_buff *reasm_buf;
89 int inputq_map;
86 bool recv_permitted; 90 bool recv_permitted;
87}; 91};
88 92
@@ -92,6 +96,9 @@ struct tipc_node_bclink {
92 * @lock: spinlock governing access to structure 96 * @lock: spinlock governing access to structure
93 * @net: the applicable net namespace 97 * @net: the applicable net namespace
94 * @hash: links to adjacent nodes in unsorted hash chain 98 * @hash: links to adjacent nodes in unsorted hash chain
99 * @inputq: pointer to input queue containing messages for msg event
100 * @namedq: pointer to name table input queue with name table messages
101 * @curr_link: the link holding the node lock, if any
95 * @active_links: pointers to active links to node 102 * @active_links: pointers to active links to node
96 * @links: pointers to all links to node 103 * @links: pointers to all links to node
97 * @action_flags: bit mask of different types of node actions 104 * @action_flags: bit mask of different types of node actions
@@ -109,10 +116,12 @@ struct tipc_node {
109 spinlock_t lock; 116 spinlock_t lock;
110 struct net *net; 117 struct net *net;
111 struct hlist_node hash; 118 struct hlist_node hash;
119 struct sk_buff_head *inputq;
120 struct sk_buff_head *namedq;
112 struct tipc_link *active_links[2]; 121 struct tipc_link *active_links[2];
113 u32 act_mtus[2]; 122 u32 act_mtus[2];
114 struct tipc_link *links[MAX_BEARERS]; 123 struct tipc_link *links[MAX_BEARERS];
115 unsigned int action_flags; 124 int action_flags;
116 struct tipc_node_bclink bclink; 125 struct tipc_node_bclink bclink;
117 struct list_head list; 126 struct list_head list;
118 int link_cnt; 127 int link_cnt;
@@ -120,7 +129,6 @@ struct tipc_node {
120 u32 signature; 129 u32 signature;
121 u32 link_id; 130 u32 link_id;
122 struct list_head publ_list; 131 struct list_head publ_list;
123 struct sk_buff_head waiting_sks;
124 struct list_head conn_sks; 132 struct list_head conn_sks;
125 struct rcu_head rcu; 133 struct rcu_head rcu;
126}; 134};