.. | .. |
---|
58 | 58 | * @node: network address of publishing socket's node |
---|
59 | 59 | * @port: publishing port |
---|
60 | 60 | * @key: publication key, unique across the cluster |
---|
| 61 | + * @id: publication id |
---|
61 | 62 | * @binding_node: all publications from the same node which bound this one |
---|
62 | | - * - Remote publications: in node->publ_list |
---|
63 | | - * Used by node/name distr to withdraw publications when node is lost |
---|
| 63 | + * - Remote publications: in node->publ_list; |
---|
| 64 | + * Used by node/name distr to withdraw publications when node is lost |
---|
64 | 65 | * - Local/node scope publications: in name_table->node_scope list |
---|
65 | 66 | * - Local/cluster scope publications: in name_table->cluster_scope list |
---|
66 | 67 | * @binding_sock: all publications from the same socket which bound this one |
---|
.. | .. |
---|
69 | 70 | * Used by closest_first and multicast receive lookup algorithms |
---|
70 | 71 | * @all_publ: all publications identical to this one, whatever node and scope |
---|
71 | 72 | * Used by round-robin lookup algorithm |
---|
| 73 | + * @list: to form a list of publications in temporal order |
---|
72 | 74 | * @rcu: RCU callback head used for deferred freeing |
---|
73 | 75 | */ |
---|
74 | 76 | struct publication { |
---|
.. | .. |
---|
79 | 81 | u32 node; |
---|
80 | 82 | u32 port; |
---|
81 | 83 | u32 key; |
---|
| 84 | + u32 id; |
---|
82 | 85 | struct list_head binding_node; |
---|
83 | 86 | struct list_head binding_sock; |
---|
84 | 87 | struct list_head local_publ; |
---|
85 | 88 | struct list_head all_publ; |
---|
| 89 | + struct list_head list; |
---|
86 | 90 | struct rcu_head rcu; |
---|
87 | 91 | }; |
---|
88 | 92 | |
---|
89 | 93 | /** |
---|
90 | 94 | * struct name_table - table containing all existing port name publications |
---|
91 | | - * @seq_hlist: name sequence hash lists |
---|
| 95 | + * @services: name sequence hash lists |
---|
92 | 96 | * @node_scope: all local publications with node scope |
---|
93 | 97 | * - used by name_distr during re-init of name table |
---|
94 | 98 | * @cluster_scope: all local publications with cluster scope |
---|
95 | 99 | * - used by name_distr to send bulk updates to new nodes |
---|
96 | 100 | * - used by name_distr during re-init of name table |
---|
| 101 | + * @cluster_scope_lock: lock for accessing @cluster_scope |
---|
97 | 102 | * @local_publ_count: number of publications issued by this node |
---|
| 103 | + * @rc_dests: destination node counter |
---|
| 104 | + * @snd_nxt: next sequence number to be used |
---|
98 | 105 | */ |
---|
99 | 106 | struct name_table { |
---|
100 | 107 | struct hlist_head services[TIPC_NAMETBL_SIZE]; |
---|
.. | .. |
---|
102 | 109 | struct list_head cluster_scope; |
---|
103 | 110 | rwlock_t cluster_scope_lock; |
---|
104 | 111 | u32 local_publ_count; |
---|
| 112 | + u32 rc_dests; |
---|
| 113 | + u32 snd_nxt; |
---|
105 | 114 | }; |
---|
106 | 115 | |
---|
107 | 116 | int tipc_nl_name_table_dump(struct sk_buff *skb, struct netlink_callback *cb); |
---|