|
@@ -52,57 +52,62 @@
|
|
#define WAIT_NAMES_GONE 0x0002 /* wait for peer's publications to be purged */
|
|
#define WAIT_NAMES_GONE 0x0002 /* wait for peer's publications to be purged */
|
|
#define WAIT_NODE_DOWN 0x0004 /* wait until peer node is declared down */
|
|
#define WAIT_NODE_DOWN 0x0004 /* wait until peer node is declared down */
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * struct tipc_node_bclink - TIPC node bclink structure
|
|
|
|
+ * @acked: sequence # of last outbound b'cast message acknowledged by node
|
|
|
|
+ * @last_in: sequence # of last in-sequence b'cast message received from node
|
|
|
|
+ * @last_sent: sequence # of last b'cast message sent by node
|
|
|
|
+ * @oos_state: state tracker for handling OOS b'cast messages
|
|
|
|
+ * @deferred_size: number of OOS b'cast messages in deferred queue
|
|
|
|
+ * @deferred_head: oldest OOS b'cast message received from node
|
|
|
|
+ * @deferred_tail: newest OOS b'cast message received from node
|
|
|
|
+ * @reasm_head: broadcast reassembly queue head from node
|
|
|
|
+ * @reasm_tail: last broadcast fragment received from node
|
|
|
|
+ * @recv_permitted: true if node is allowed to receive b'cast messages
|
|
|
|
+ */
|
|
|
|
+struct tipc_node_bclink {
|
|
|
|
+ u32 acked;
|
|
|
|
+ u32 last_in;
|
|
|
|
+ u32 last_sent;
|
|
|
|
+ u32 oos_state;
|
|
|
|
+ u32 deferred_size;
|
|
|
|
+ struct sk_buff *deferred_head;
|
|
|
|
+ struct sk_buff *deferred_tail;
|
|
|
|
+ struct sk_buff *reasm_head;
|
|
|
|
+ struct sk_buff *reasm_tail;
|
|
|
|
+ bool recv_permitted;
|
|
|
|
+};
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* struct tipc_node - TIPC node structure
|
|
* struct tipc_node - TIPC node structure
|
|
* @addr: network address of node
|
|
* @addr: network address of node
|
|
* @lock: spinlock governing access to structure
|
|
* @lock: spinlock governing access to structure
|
|
* @hash: links to adjacent nodes in unsorted hash chain
|
|
* @hash: links to adjacent nodes in unsorted hash chain
|
|
- * @list: links to adjacent nodes in sorted list of cluster's nodes
|
|
|
|
- * @nsub: list of "node down" subscriptions monitoring node
|
|
|
|
* @active_links: pointers to active links to node
|
|
* @active_links: pointers to active links to node
|
|
* @links: pointers to all links to node
|
|
* @links: pointers to all links to node
|
|
- * @working_links: number of working links to node (both active and standby)
|
|
|
|
* @block_setup: bit mask of conditions preventing link establishment to node
|
|
* @block_setup: bit mask of conditions preventing link establishment to node
|
|
|
|
+ * @bclink: broadcast-related info
|
|
|
|
+ * @list: links to adjacent nodes in sorted list of cluster's nodes
|
|
|
|
+ * @working_links: number of working links to node (both active and standby)
|
|
* @link_cnt: number of links to node
|
|
* @link_cnt: number of links to node
|
|
* @signature: node instance identifier
|
|
* @signature: node instance identifier
|
|
- * @bclink: broadcast-related info
|
|
|
|
|
|
+ * @nsub: list of "node down" subscriptions monitoring node
|
|
* @rcu: rcu struct for tipc_node
|
|
* @rcu: rcu struct for tipc_node
|
|
- * @acked: sequence # of last outbound b'cast message acknowledged by node
|
|
|
|
- * @last_in: sequence # of last in-sequence b'cast message received from node
|
|
|
|
- * @last_sent: sequence # of last b'cast message sent by node
|
|
|
|
- * @oos_state: state tracker for handling OOS b'cast messages
|
|
|
|
- * @deferred_size: number of OOS b'cast messages in deferred queue
|
|
|
|
- * @deferred_head: oldest OOS b'cast message received from node
|
|
|
|
- * @deferred_tail: newest OOS b'cast message received from node
|
|
|
|
- * @reasm_head: broadcast reassembly queue head from node
|
|
|
|
- * @reasm_tail: last broadcast fragment received from node
|
|
|
|
- * @recv_permitted: true if node is allowed to receive b'cast messages
|
|
|
|
*/
|
|
*/
|
|
struct tipc_node {
|
|
struct tipc_node {
|
|
u32 addr;
|
|
u32 addr;
|
|
spinlock_t lock;
|
|
spinlock_t lock;
|
|
struct hlist_node hash;
|
|
struct hlist_node hash;
|
|
- struct list_head list;
|
|
|
|
- struct list_head nsub;
|
|
|
|
struct tipc_link *active_links[2];
|
|
struct tipc_link *active_links[2];
|
|
struct tipc_link *links[MAX_BEARERS];
|
|
struct tipc_link *links[MAX_BEARERS];
|
|
|
|
+ int block_setup;
|
|
|
|
+ struct tipc_node_bclink bclink;
|
|
|
|
+ struct list_head list;
|
|
int link_cnt;
|
|
int link_cnt;
|
|
int working_links;
|
|
int working_links;
|
|
- int block_setup;
|
|
|
|
u32 signature;
|
|
u32 signature;
|
|
|
|
+ struct list_head nsub;
|
|
struct rcu_head rcu;
|
|
struct rcu_head rcu;
|
|
- struct {
|
|
|
|
- u32 acked;
|
|
|
|
- u32 last_in;
|
|
|
|
- u32 last_sent;
|
|
|
|
- u32 oos_state;
|
|
|
|
- u32 deferred_size;
|
|
|
|
- struct sk_buff *deferred_head;
|
|
|
|
- struct sk_buff *deferred_tail;
|
|
|
|
- struct sk_buff *reasm_head;
|
|
|
|
- struct sk_buff *reasm_tail;
|
|
|
|
- bool recv_permitted;
|
|
|
|
- } bclink;
|
|
|
|
};
|
|
};
|
|
|
|
|
|
extern struct list_head tipc_node_list;
|
|
extern struct list_head tipc_node_list;
|