diff options
Diffstat (limited to 'net/tipc/net.c')
-rw-r--r-- | net/tipc/net.c | 126 |
1 files changed, 63 insertions, 63 deletions
diff --git a/net/tipc/net.c b/net/tipc/net.c index 6826b493c1d6..074891ad4f09 100644 --- a/net/tipc/net.c +++ b/net/tipc/net.c | |||
@@ -58,25 +58,25 @@ | |||
58 | * 1: The routing hierarchy. | 58 | * 1: The routing hierarchy. |
59 | * Comprises the structures 'zone', 'cluster', 'node', 'link' | 59 | * Comprises the structures 'zone', 'cluster', 'node', 'link' |
60 | * and 'bearer'. The whole hierarchy is protected by a big | 60 | * and 'bearer'. The whole hierarchy is protected by a big |
61 | * read/write lock, net_lock, to enssure that nothing is added | 61 | * read/write lock, tipc_net_lock, to enssure that nothing is added |
62 | * or removed while code is accessing any of these structures. | 62 | * or removed while code is accessing any of these structures. |
63 | * This layer must not be called from the two others while they | 63 | * This layer must not be called from the two others while they |
64 | * hold any of their own locks. | 64 | * hold any of their own locks. |
65 | * Neither must it itself do any upcalls to the other two before | 65 | * Neither must it itself do any upcalls to the other two before |
66 | * it has released net_lock and other protective locks. | 66 | * it has released tipc_net_lock and other protective locks. |
67 | * | 67 | * |
68 | * Within the net_lock domain there are two sub-domains;'node' and | 68 | * Within the tipc_net_lock domain there are two sub-domains;'node' and |
69 | * 'bearer', where local write operations are permitted, | 69 | * 'bearer', where local write operations are permitted, |
70 | * provided that those are protected by individual spin_locks | 70 | * provided that those are protected by individual spin_locks |
71 | * per instance. Code holding net_lock(read) and a node spin_lock | 71 | * per instance. Code holding tipc_net_lock(read) and a node spin_lock |
72 | * is permitted to poke around in both the node itself and its | 72 | * is permitted to poke around in both the node itself and its |
73 | * subordinate links. I.e, it can update link counters and queues, | 73 | * subordinate links. I.e, it can update link counters and queues, |
74 | * change link state, send protocol messages, and alter the | 74 | * change link state, send protocol messages, and alter the |
75 | * "active_links" array in the node; but it can _not_ remove a link | 75 | * "active_links" array in the node; but it can _not_ remove a link |
76 | * or a node from the overall structure. | 76 | * or a node from the overall structure. |
77 | * Correspondingly, individual bearers may change status within a | 77 | * Correspondingly, individual bearers may change status within a |
78 | * net_lock(read), protected by an individual spin_lock ber bearer | 78 | * tipc_net_lock(read), protected by an individual spin_lock ber bearer |
79 | * instance, but it needs net_lock(write) to remove/add any bearers. | 79 | * instance, but it needs tipc_net_lock(write) to remove/add any bearers. |
80 | * | 80 | * |
81 | * | 81 | * |
82 | * 2: The transport level of the protocol. | 82 | * 2: The transport level of the protocol. |
@@ -97,91 +97,91 @@ | |||
97 | * (Nobody is using read-only access to this, so it can just as | 97 | * (Nobody is using read-only access to this, so it can just as |
98 | * well be changed to a spin_lock) | 98 | * well be changed to a spin_lock) |
99 | * - A spin lock to protect the registry of kernel/driver users (reg.c) | 99 | * - A spin lock to protect the registry of kernel/driver users (reg.c) |
100 | * - A global spin_lock (port_lock), which only task is to ensure | 100 | * - A global spin_lock (tipc_port_lock), which only task is to ensure |
101 | * consistency where more than one port is involved in an operation, | 101 | * consistency where more than one port is involved in an operation, |
102 | * i.e., whe a port is part of a linked list of ports. | 102 | * i.e., whe a port is part of a linked list of ports. |
103 | * There are two such lists; 'port_list', which is used for management, | 103 | * There are two such lists; 'port_list', which is used for management, |
104 | * and 'wait_list', which is used to queue ports during congestion. | 104 | * and 'wait_list', which is used to queue ports during congestion. |
105 | * | 105 | * |
106 | * 3: The name table (name_table.c, name_distr.c, subscription.c) | 106 | * 3: The name table (name_table.c, name_distr.c, subscription.c) |
107 | * - There is one big read/write-lock (nametbl_lock) protecting the | 107 | * - There is one big read/write-lock (tipc_nametbl_lock) protecting the |
108 | * overall name table structure. Nothing must be added/removed to | 108 | * overall name table structure. Nothing must be added/removed to |
109 | * this structure without holding write access to it. | 109 | * this structure without holding write access to it. |
110 | * - There is one local spin_lock per sub_sequence, which can be seen | 110 | * - There is one local spin_lock per sub_sequence, which can be seen |
111 | * as a sub-domain to the nametbl_lock domain. It is used only | 111 | * as a sub-domain to the tipc_nametbl_lock domain. It is used only |
112 | * for translation operations, and is needed because a translation | 112 | * for translation operations, and is needed because a translation |
113 | * steps the root of the 'publication' linked list between each lookup. | 113 | * steps the root of the 'publication' linked list between each lookup. |
114 | * This is always used within the scope of a nametbl_lock(read). | 114 | * This is always used within the scope of a tipc_nametbl_lock(read). |
115 | * - A local spin_lock protecting the queue of subscriber events. | 115 | * - A local spin_lock protecting the queue of subscriber events. |
116 | */ | 116 | */ |
117 | 117 | ||
118 | rwlock_t net_lock = RW_LOCK_UNLOCKED; | 118 | rwlock_t tipc_net_lock = RW_LOCK_UNLOCKED; |
119 | struct network net = { 0 }; | 119 | struct network tipc_net = { 0 }; |
120 | 120 | ||
121 | struct node *net_select_remote_node(u32 addr, u32 ref) | 121 | struct node *tipc_net_select_remote_node(u32 addr, u32 ref) |
122 | { | 122 | { |
123 | return zone_select_remote_node(net.zones[tipc_zone(addr)], addr, ref); | 123 | return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref); |
124 | } | 124 | } |
125 | 125 | ||
126 | u32 net_select_router(u32 addr, u32 ref) | 126 | u32 tipc_net_select_router(u32 addr, u32 ref) |
127 | { | 127 | { |
128 | return zone_select_router(net.zones[tipc_zone(addr)], addr, ref); | 128 | return tipc_zone_select_router(tipc_net.zones[tipc_zone(addr)], addr, ref); |
129 | } | 129 | } |
130 | 130 | ||
131 | 131 | ||
132 | u32 net_next_node(u32 a) | 132 | u32 tipc_net_next_node(u32 a) |
133 | { | 133 | { |
134 | if (net.zones[tipc_zone(a)]) | 134 | if (tipc_net.zones[tipc_zone(a)]) |
135 | return zone_next_node(a); | 135 | return tipc_zone_next_node(a); |
136 | return 0; | 136 | return 0; |
137 | } | 137 | } |
138 | 138 | ||
139 | void net_remove_as_router(u32 router) | 139 | void tipc_net_remove_as_router(u32 router) |
140 | { | 140 | { |
141 | u32 z_num; | 141 | u32 z_num; |
142 | 142 | ||
143 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { | 143 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { |
144 | if (!net.zones[z_num]) | 144 | if (!tipc_net.zones[z_num]) |
145 | continue; | 145 | continue; |
146 | zone_remove_as_router(net.zones[z_num], router); | 146 | tipc_zone_remove_as_router(tipc_net.zones[z_num], router); |
147 | } | 147 | } |
148 | } | 148 | } |
149 | 149 | ||
150 | void net_send_external_routes(u32 dest) | 150 | void tipc_net_send_external_routes(u32 dest) |
151 | { | 151 | { |
152 | u32 z_num; | 152 | u32 z_num; |
153 | 153 | ||
154 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { | 154 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { |
155 | if (net.zones[z_num]) | 155 | if (tipc_net.zones[z_num]) |
156 | zone_send_external_routes(net.zones[z_num], dest); | 156 | tipc_zone_send_external_routes(tipc_net.zones[z_num], dest); |
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | int net_init(void) | 160 | static int net_init(void) |
161 | { | 161 | { |
162 | u32 sz = sizeof(struct _zone *) * (tipc_max_zones + 1); | 162 | u32 sz = sizeof(struct _zone *) * (tipc_max_zones + 1); |
163 | 163 | ||
164 | memset(&net, 0, sizeof(net)); | 164 | memset(&tipc_net, 0, sizeof(tipc_net)); |
165 | net.zones = (struct _zone **)kmalloc(sz, GFP_ATOMIC); | 165 | tipc_net.zones = (struct _zone **)kmalloc(sz, GFP_ATOMIC); |
166 | if (!net.zones) { | 166 | if (!tipc_net.zones) { |
167 | return -ENOMEM; | 167 | return -ENOMEM; |
168 | } | 168 | } |
169 | memset(net.zones, 0, sz); | 169 | memset(tipc_net.zones, 0, sz); |
170 | return TIPC_OK; | 170 | return TIPC_OK; |
171 | } | 171 | } |
172 | 172 | ||
173 | void net_stop(void) | 173 | static void net_stop(void) |
174 | { | 174 | { |
175 | u32 z_num; | 175 | u32 z_num; |
176 | 176 | ||
177 | if (!net.zones) | 177 | if (!tipc_net.zones) |
178 | return; | 178 | return; |
179 | 179 | ||
180 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { | 180 | for (z_num = 1; z_num <= tipc_max_zones; z_num++) { |
181 | zone_delete(net.zones[z_num]); | 181 | tipc_zone_delete(tipc_net.zones[z_num]); |
182 | } | 182 | } |
183 | kfree(net.zones); | 183 | kfree(tipc_net.zones); |
184 | net.zones = 0; | 184 | tipc_net.zones = 0; |
185 | } | 185 | } |
186 | 186 | ||
187 | static void net_route_named_msg(struct sk_buff *buf) | 187 | static void net_route_named_msg(struct sk_buff *buf) |
@@ -191,26 +191,26 @@ static void net_route_named_msg(struct sk_buff *buf) | |||
191 | u32 dport; | 191 | u32 dport; |
192 | 192 | ||
193 | if (!msg_named(msg)) { | 193 | if (!msg_named(msg)) { |
194 | msg_dbg(msg, "net->drop_nam:"); | 194 | msg_dbg(msg, "tipc_net->drop_nam:"); |
195 | buf_discard(buf); | 195 | buf_discard(buf); |
196 | return; | 196 | return; |
197 | } | 197 | } |
198 | 198 | ||
199 | dnode = addr_domain(msg_lookup_scope(msg)); | 199 | dnode = addr_domain(msg_lookup_scope(msg)); |
200 | dport = nametbl_translate(msg_nametype(msg), msg_nameinst(msg), &dnode); | 200 | dport = tipc_nametbl_translate(msg_nametype(msg), msg_nameinst(msg), &dnode); |
201 | dbg("net->lookup<%u,%u>-><%u,%x>\n", | 201 | dbg("tipc_net->lookup<%u,%u>-><%u,%x>\n", |
202 | msg_nametype(msg), msg_nameinst(msg), dport, dnode); | 202 | msg_nametype(msg), msg_nameinst(msg), dport, dnode); |
203 | if (dport) { | 203 | if (dport) { |
204 | msg_set_destnode(msg, dnode); | 204 | msg_set_destnode(msg, dnode); |
205 | msg_set_destport(msg, dport); | 205 | msg_set_destport(msg, dport); |
206 | net_route_msg(buf); | 206 | tipc_net_route_msg(buf); |
207 | return; | 207 | return; |
208 | } | 208 | } |
209 | msg_dbg(msg, "net->rej:NO NAME: "); | 209 | msg_dbg(msg, "tipc_net->rej:NO NAME: "); |
210 | tipc_reject_msg(buf, TIPC_ERR_NO_NAME); | 210 | tipc_reject_msg(buf, TIPC_ERR_NO_NAME); |
211 | } | 211 | } |
212 | 212 | ||
213 | void net_route_msg(struct sk_buff *buf) | 213 | void tipc_net_route_msg(struct sk_buff *buf) |
214 | { | 214 | { |
215 | struct tipc_msg *msg; | 215 | struct tipc_msg *msg; |
216 | u32 dnode; | 216 | u32 dnode; |
@@ -232,29 +232,29 @@ void net_route_msg(struct sk_buff *buf) | |||
232 | return; | 232 | return; |
233 | } | 233 | } |
234 | 234 | ||
235 | msg_dbg(msg, "net->rout: "); | 235 | msg_dbg(msg, "tipc_net->rout: "); |
236 | 236 | ||
237 | /* Handle message for this node */ | 237 | /* Handle message for this node */ |
238 | dnode = msg_short(msg) ? tipc_own_addr : msg_destnode(msg); | 238 | dnode = msg_short(msg) ? tipc_own_addr : msg_destnode(msg); |
239 | if (in_scope(dnode, tipc_own_addr)) { | 239 | if (in_scope(dnode, tipc_own_addr)) { |
240 | if (msg_isdata(msg)) { | 240 | if (msg_isdata(msg)) { |
241 | if (msg_mcast(msg)) | 241 | if (msg_mcast(msg)) |
242 | port_recv_mcast(buf, NULL); | 242 | tipc_port_recv_mcast(buf, NULL); |
243 | else if (msg_destport(msg)) | 243 | else if (msg_destport(msg)) |
244 | port_recv_msg(buf); | 244 | tipc_port_recv_msg(buf); |
245 | else | 245 | else |
246 | net_route_named_msg(buf); | 246 | net_route_named_msg(buf); |
247 | return; | 247 | return; |
248 | } | 248 | } |
249 | switch (msg_user(msg)) { | 249 | switch (msg_user(msg)) { |
250 | case ROUTE_DISTRIBUTOR: | 250 | case ROUTE_DISTRIBUTOR: |
251 | cluster_recv_routing_table(buf); | 251 | tipc_cltr_recv_routing_table(buf); |
252 | break; | 252 | break; |
253 | case NAME_DISTRIBUTOR: | 253 | case NAME_DISTRIBUTOR: |
254 | named_recv(buf); | 254 | tipc_named_recv(buf); |
255 | break; | 255 | break; |
256 | case CONN_MANAGER: | 256 | case CONN_MANAGER: |
257 | port_recv_proto_msg(buf); | 257 | tipc_port_recv_proto_msg(buf); |
258 | break; | 258 | break; |
259 | default: | 259 | default: |
260 | msg_dbg(msg,"DROP/NET/<REC<"); | 260 | msg_dbg(msg,"DROP/NET/<REC<"); |
@@ -265,10 +265,10 @@ void net_route_msg(struct sk_buff *buf) | |||
265 | 265 | ||
266 | /* Handle message for another node */ | 266 | /* Handle message for another node */ |
267 | msg_dbg(msg, "NET>SEND>: "); | 267 | msg_dbg(msg, "NET>SEND>: "); |
268 | link_send(buf, dnode, msg_link_selector(msg)); | 268 | tipc_link_send(buf, dnode, msg_link_selector(msg)); |
269 | } | 269 | } |
270 | 270 | ||
271 | int tipc_start_net(void) | 271 | int tipc_net_start(void) |
272 | { | 272 | { |
273 | char addr_string[16]; | 273 | char addr_string[16]; |
274 | int res; | 274 | int res; |
@@ -277,35 +277,35 @@ int tipc_start_net(void) | |||
277 | return -ENOPROTOOPT; | 277 | return -ENOPROTOOPT; |
278 | 278 | ||
279 | tipc_mode = TIPC_NET_MODE; | 279 | tipc_mode = TIPC_NET_MODE; |
280 | named_reinit(); | 280 | tipc_named_reinit(); |
281 | port_reinit(); | 281 | tipc_port_reinit(); |
282 | 282 | ||
283 | if ((res = bearer_init()) || | 283 | if ((res = tipc_bearer_init()) || |
284 | (res = net_init()) || | 284 | (res = net_init()) || |
285 | (res = cluster_init()) || | 285 | (res = tipc_cltr_init()) || |
286 | (res = bclink_init())) { | 286 | (res = tipc_bclink_init())) { |
287 | return res; | 287 | return res; |
288 | } | 288 | } |
289 | subscr_stop(); | 289 | tipc_subscr_stop(); |
290 | cfg_stop(); | 290 | tipc_cfg_stop(); |
291 | k_signal((Handler)subscr_start, 0); | 291 | tipc_k_signal((Handler)tipc_subscr_start, 0); |
292 | k_signal((Handler)cfg_init, 0); | 292 | tipc_k_signal((Handler)tipc_cfg_init, 0); |
293 | info("Started in network mode\n"); | 293 | info("Started in network mode\n"); |
294 | info("Own node address %s, network identity %u\n", | 294 | info("Own node address %s, network identity %u\n", |
295 | addr_string_fill(addr_string, tipc_own_addr), tipc_net_id); | 295 | addr_string_fill(addr_string, tipc_own_addr), tipc_net_id); |
296 | return TIPC_OK; | 296 | return TIPC_OK; |
297 | } | 297 | } |
298 | 298 | ||
299 | void tipc_stop_net(void) | 299 | void tipc_net_stop(void) |
300 | { | 300 | { |
301 | if (tipc_mode != TIPC_NET_MODE) | 301 | if (tipc_mode != TIPC_NET_MODE) |
302 | return; | 302 | return; |
303 | write_lock_bh(&net_lock); | 303 | write_lock_bh(&tipc_net_lock); |
304 | bearer_stop(); | 304 | tipc_bearer_stop(); |
305 | tipc_mode = TIPC_NODE_MODE; | 305 | tipc_mode = TIPC_NODE_MODE; |
306 | bclink_stop(); | 306 | tipc_bclink_stop(); |
307 | net_stop(); | 307 | net_stop(); |
308 | write_unlock_bh(&net_lock); | 308 | write_unlock_bh(&tipc_net_lock); |
309 | info("Left network mode \n"); | 309 | info("Left network mode \n"); |
310 | } | 310 | } |
311 | 311 | ||