diff options
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r-- | net/tipc/msg.c | 100 |
1 files changed, 28 insertions, 72 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c index ecb532fb0351..6d92d17e7fb5 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * net/tipc/msg.c: TIPC message header routines | 2 | * net/tipc/msg.c: TIPC message header routines |
3 | * | 3 | * |
4 | * Copyright (c) 2000-2006, Ericsson AB | 4 | * Copyright (c) 2000-2006, Ericsson AB |
5 | * Copyright (c) 2005, Wind River Systems | 5 | * Copyright (c) 2005, 2010-2011, Wind River Systems |
6 | * All rights reserved. | 6 | * All rights reserved. |
7 | * | 7 | * |
8 | * Redistribution and use in source and binary forms, with or without | 8 | * Redistribution and use in source and binary forms, with or without |
@@ -35,10 +35,7 @@ | |||
35 | */ | 35 | */ |
36 | 36 | ||
37 | #include "core.h" | 37 | #include "core.h" |
38 | #include "addr.h" | ||
39 | #include "dbg.h" | ||
40 | #include "msg.h" | 38 | #include "msg.h" |
41 | #include "bearer.h" | ||
42 | 39 | ||
43 | u32 tipc_msg_tot_importance(struct tipc_msg *m) | 40 | u32 tipc_msg_tot_importance(struct tipc_msg *m) |
44 | { | 41 | { |
@@ -94,7 +91,7 @@ int tipc_msg_calc_data_size(struct iovec const *msg_sect, u32 num_sect) | |||
94 | 91 | ||
95 | int tipc_msg_build(struct tipc_msg *hdr, | 92 | int tipc_msg_build(struct tipc_msg *hdr, |
96 | struct iovec const *msg_sect, u32 num_sect, | 93 | struct iovec const *msg_sect, u32 num_sect, |
97 | int max_size, int usrmem, struct sk_buff** buf) | 94 | int max_size, int usrmem, struct sk_buff **buf) |
98 | { | 95 | { |
99 | int dsz, sz, hsz, pos, res, cnt; | 96 | int dsz, sz, hsz, pos, res, cnt; |
100 | 97 | ||
@@ -140,6 +137,7 @@ int tipc_msg_build(struct tipc_msg *hdr, | |||
140 | void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | 137 | void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) |
141 | { | 138 | { |
142 | u32 usr = msg_user(msg); | 139 | u32 usr = msg_user(msg); |
140 | tipc_printf(buf, KERN_DEBUG); | ||
143 | tipc_printf(buf, str); | 141 | tipc_printf(buf, str); |
144 | 142 | ||
145 | switch (usr) { | 143 | switch (usr) { |
@@ -163,10 +161,10 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
163 | tipc_printf(buf, "LAST:"); | 161 | tipc_printf(buf, "LAST:"); |
164 | break; | 162 | break; |
165 | default: | 163 | default: |
166 | tipc_printf(buf, "UNKNOWN:%x",msg_type(msg)); | 164 | tipc_printf(buf, "UNKNOWN:%x", msg_type(msg)); |
167 | 165 | ||
168 | } | 166 | } |
169 | tipc_printf(buf, "NO(%u/%u):",msg_long_msgno(msg), | 167 | tipc_printf(buf, "NO(%u/%u):", msg_long_msgno(msg), |
170 | msg_fragm_no(msg)); | 168 | msg_fragm_no(msg)); |
171 | break; | 169 | break; |
172 | case TIPC_LOW_IMPORTANCE: | 170 | case TIPC_LOW_IMPORTANCE: |
@@ -192,10 +190,8 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
192 | tipc_printf(buf, "DIR:"); | 190 | tipc_printf(buf, "DIR:"); |
193 | break; | 191 | break; |
194 | default: | 192 | default: |
195 | tipc_printf(buf, "UNKNOWN TYPE %u",msg_type(msg)); | 193 | tipc_printf(buf, "UNKNOWN TYPE %u", msg_type(msg)); |
196 | } | 194 | } |
197 | if (msg_routed(msg) && !msg_non_seq(msg)) | ||
198 | tipc_printf(buf, "ROUT:"); | ||
199 | if (msg_reroute_cnt(msg)) | 195 | if (msg_reroute_cnt(msg)) |
200 | tipc_printf(buf, "REROUTED(%u):", | 196 | tipc_printf(buf, "REROUTED(%u):", |
201 | msg_reroute_cnt(msg)); | 197 | msg_reroute_cnt(msg)); |
@@ -210,10 +206,8 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
210 | tipc_printf(buf, "WDRW:"); | 206 | tipc_printf(buf, "WDRW:"); |
211 | break; | 207 | break; |
212 | default: | 208 | default: |
213 | tipc_printf(buf, "UNKNOWN:%x",msg_type(msg)); | 209 | tipc_printf(buf, "UNKNOWN:%x", msg_type(msg)); |
214 | } | 210 | } |
215 | if (msg_routed(msg)) | ||
216 | tipc_printf(buf, "ROUT:"); | ||
217 | if (msg_reroute_cnt(msg)) | 211 | if (msg_reroute_cnt(msg)) |
218 | tipc_printf(buf, "REROUTED(%u):", | 212 | tipc_printf(buf, "REROUTED(%u):", |
219 | msg_reroute_cnt(msg)); | 213 | msg_reroute_cnt(msg)); |
@@ -229,39 +223,36 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
229 | break; | 223 | break; |
230 | case CONN_ACK: | 224 | case CONN_ACK: |
231 | tipc_printf(buf, "CONN_ACK:"); | 225 | tipc_printf(buf, "CONN_ACK:"); |
232 | tipc_printf(buf, "ACK(%u):",msg_msgcnt(msg)); | 226 | tipc_printf(buf, "ACK(%u):", msg_msgcnt(msg)); |
233 | break; | 227 | break; |
234 | default: | 228 | default: |
235 | tipc_printf(buf, "UNKNOWN TYPE:%x",msg_type(msg)); | 229 | tipc_printf(buf, "UNKNOWN TYPE:%x", msg_type(msg)); |
236 | } | 230 | } |
237 | if (msg_routed(msg)) | ||
238 | tipc_printf(buf, "ROUT:"); | ||
239 | if (msg_reroute_cnt(msg)) | 231 | if (msg_reroute_cnt(msg)) |
240 | tipc_printf(buf, "REROUTED(%u):",msg_reroute_cnt(msg)); | 232 | tipc_printf(buf, "REROUTED(%u):", msg_reroute_cnt(msg)); |
241 | break; | 233 | break; |
242 | case LINK_PROTOCOL: | 234 | case LINK_PROTOCOL: |
243 | tipc_printf(buf, "PROT:TIM(%u):",msg_timestamp(msg)); | ||
244 | switch (msg_type(msg)) { | 235 | switch (msg_type(msg)) { |
245 | case STATE_MSG: | 236 | case STATE_MSG: |
246 | tipc_printf(buf, "STATE:"); | 237 | tipc_printf(buf, "STATE:"); |
247 | tipc_printf(buf, "%s:",msg_probe(msg) ? "PRB" :""); | 238 | tipc_printf(buf, "%s:", msg_probe(msg) ? "PRB" : ""); |
248 | tipc_printf(buf, "NXS(%u):",msg_next_sent(msg)); | 239 | tipc_printf(buf, "NXS(%u):", msg_next_sent(msg)); |
249 | tipc_printf(buf, "GAP(%u):",msg_seq_gap(msg)); | 240 | tipc_printf(buf, "GAP(%u):", msg_seq_gap(msg)); |
250 | tipc_printf(buf, "LSTBC(%u):",msg_last_bcast(msg)); | 241 | tipc_printf(buf, "LSTBC(%u):", msg_last_bcast(msg)); |
251 | break; | 242 | break; |
252 | case RESET_MSG: | 243 | case RESET_MSG: |
253 | tipc_printf(buf, "RESET:"); | 244 | tipc_printf(buf, "RESET:"); |
254 | if (msg_size(msg) != msg_hdr_sz(msg)) | 245 | if (msg_size(msg) != msg_hdr_sz(msg)) |
255 | tipc_printf(buf, "BEAR:%s:",msg_data(msg)); | 246 | tipc_printf(buf, "BEAR:%s:", msg_data(msg)); |
256 | break; | 247 | break; |
257 | case ACTIVATE_MSG: | 248 | case ACTIVATE_MSG: |
258 | tipc_printf(buf, "ACTIVATE:"); | 249 | tipc_printf(buf, "ACTIVATE:"); |
259 | break; | 250 | break; |
260 | default: | 251 | default: |
261 | tipc_printf(buf, "UNKNOWN TYPE:%x",msg_type(msg)); | 252 | tipc_printf(buf, "UNKNOWN TYPE:%x", msg_type(msg)); |
262 | } | 253 | } |
263 | tipc_printf(buf, "PLANE(%c):",msg_net_plane(msg)); | 254 | tipc_printf(buf, "PLANE(%c):", msg_net_plane(msg)); |
264 | tipc_printf(buf, "SESS(%u):",msg_session(msg)); | 255 | tipc_printf(buf, "SESS(%u):", msg_session(msg)); |
265 | break; | 256 | break; |
266 | case CHANGEOVER_PROTOCOL: | 257 | case CHANGEOVER_PROTOCOL: |
267 | tipc_printf(buf, "TUNL:"); | 258 | tipc_printf(buf, "TUNL:"); |
@@ -271,37 +262,10 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
271 | break; | 262 | break; |
272 | case ORIGINAL_MSG: | 263 | case ORIGINAL_MSG: |
273 | tipc_printf(buf, "ORIG:"); | 264 | tipc_printf(buf, "ORIG:"); |
274 | tipc_printf(buf, "EXP(%u)",msg_msgcnt(msg)); | 265 | tipc_printf(buf, "EXP(%u)", msg_msgcnt(msg)); |
275 | break; | 266 | break; |
276 | default: | 267 | default: |
277 | tipc_printf(buf, "UNKNOWN TYPE:%x",msg_type(msg)); | 268 | tipc_printf(buf, "UNKNOWN TYPE:%x", msg_type(msg)); |
278 | } | ||
279 | break; | ||
280 | case ROUTE_DISTRIBUTOR: | ||
281 | tipc_printf(buf, "ROUTING_MNG:"); | ||
282 | switch (msg_type(msg)) { | ||
283 | case EXT_ROUTING_TABLE: | ||
284 | tipc_printf(buf, "EXT_TBL:"); | ||
285 | tipc_printf(buf, "TO:%x:",msg_remote_node(msg)); | ||
286 | break; | ||
287 | case LOCAL_ROUTING_TABLE: | ||
288 | tipc_printf(buf, "LOCAL_TBL:"); | ||
289 | tipc_printf(buf, "TO:%x:",msg_remote_node(msg)); | ||
290 | break; | ||
291 | case SLAVE_ROUTING_TABLE: | ||
292 | tipc_printf(buf, "DP_TBL:"); | ||
293 | tipc_printf(buf, "TO:%x:",msg_remote_node(msg)); | ||
294 | break; | ||
295 | case ROUTE_ADDITION: | ||
296 | tipc_printf(buf, "ADD:"); | ||
297 | tipc_printf(buf, "TO:%x:",msg_remote_node(msg)); | ||
298 | break; | ||
299 | case ROUTE_REMOVAL: | ||
300 | tipc_printf(buf, "REMOVE:"); | ||
301 | tipc_printf(buf, "TO:%x:",msg_remote_node(msg)); | ||
302 | break; | ||
303 | default: | ||
304 | tipc_printf(buf, "UNKNOWN TYPE:%x",msg_type(msg)); | ||
305 | } | 269 | } |
306 | break; | 270 | break; |
307 | case LINK_CONFIG: | 271 | case LINK_CONFIG: |
@@ -314,7 +278,7 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
314 | tipc_printf(buf, "DSC_RESP:"); | 278 | tipc_printf(buf, "DSC_RESP:"); |
315 | break; | 279 | break; |
316 | default: | 280 | default: |
317 | tipc_printf(buf, "UNKNOWN TYPE:%x:",msg_type(msg)); | 281 | tipc_printf(buf, "UNKNOWN TYPE:%x:", msg_type(msg)); |
318 | break; | 282 | break; |
319 | } | 283 | } |
320 | break; | 284 | break; |
@@ -350,7 +314,8 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
350 | tipc_printf(buf, "UNKNOWN ERROR(%x):", | 314 | tipc_printf(buf, "UNKNOWN ERROR(%x):", |
351 | msg_errcode(msg)); | 315 | msg_errcode(msg)); |
352 | } | 316 | } |
353 | default:{} | 317 | default: |
318 | break; | ||
354 | } | 319 | } |
355 | 320 | ||
356 | tipc_printf(buf, "HZ(%u):", msg_hdr_sz(msg)); | 321 | tipc_printf(buf, "HZ(%u):", msg_hdr_sz(msg)); |
@@ -359,9 +324,8 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
359 | 324 | ||
360 | if (msg_non_seq(msg)) | 325 | if (msg_non_seq(msg)) |
361 | tipc_printf(buf, "NOSEQ:"); | 326 | tipc_printf(buf, "NOSEQ:"); |
362 | else { | 327 | else |
363 | tipc_printf(buf, "ACK(%u):", msg_ack(msg)); | 328 | tipc_printf(buf, "ACK(%u):", msg_ack(msg)); |
364 | } | ||
365 | tipc_printf(buf, "BACK(%u):", msg_bcast_ack(msg)); | 329 | tipc_printf(buf, "BACK(%u):", msg_bcast_ack(msg)); |
366 | tipc_printf(buf, "PRND(%x)", msg_prevnode(msg)); | 330 | tipc_printf(buf, "PRND(%x)", msg_prevnode(msg)); |
367 | 331 | ||
@@ -383,21 +347,15 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
383 | tipc_printf(buf, ":OPRT(%u):", msg_origport(msg)); | 347 | tipc_printf(buf, ":OPRT(%u):", msg_origport(msg)); |
384 | tipc_printf(buf, ":DPRT(%u):", msg_destport(msg)); | 348 | tipc_printf(buf, ":DPRT(%u):", msg_destport(msg)); |
385 | } | 349 | } |
386 | if (msg_routed(msg) && !msg_non_seq(msg)) | ||
387 | tipc_printf(buf, ":TSEQN(%u)", msg_transp_seqno(msg)); | ||
388 | } | 350 | } |
389 | if (msg_user(msg) == NAME_DISTRIBUTOR) { | 351 | if (msg_user(msg) == NAME_DISTRIBUTOR) { |
390 | tipc_printf(buf, ":ONOD(%x):", msg_orignode(msg)); | 352 | tipc_printf(buf, ":ONOD(%x):", msg_orignode(msg)); |
391 | tipc_printf(buf, ":DNOD(%x):", msg_destnode(msg)); | 353 | tipc_printf(buf, ":DNOD(%x):", msg_destnode(msg)); |
392 | if (msg_routed(msg)) { | ||
393 | tipc_printf(buf, ":CSEQN(%u)", msg_transp_seqno(msg)); | ||
394 | } | ||
395 | } | 354 | } |
396 | 355 | ||
397 | if (msg_user(msg) == LINK_CONFIG) { | 356 | if (msg_user(msg) == LINK_CONFIG) { |
398 | u32* raw = (u32*)msg; | 357 | u32 *raw = (u32 *)msg; |
399 | struct tipc_media_addr* orig = (struct tipc_media_addr*)&raw[5]; | 358 | struct tipc_media_addr *orig = (struct tipc_media_addr *)&raw[5]; |
400 | tipc_printf(buf, ":REQL(%u):", msg_req_links(msg)); | ||
401 | tipc_printf(buf, ":DDOM(%x):", msg_dest_domain(msg)); | 359 | tipc_printf(buf, ":DDOM(%x):", msg_dest_domain(msg)); |
402 | tipc_printf(buf, ":NETID(%u):", msg_bc_netid(msg)); | 360 | tipc_printf(buf, ":NETID(%u):", msg_bc_netid(msg)); |
403 | tipc_media_addr_printf(buf, orig); | 361 | tipc_media_addr_printf(buf, orig); |
@@ -407,12 +365,10 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str) | |||
407 | tipc_printf(buf, "TO(%u):", msg_bcgap_to(msg)); | 365 | tipc_printf(buf, "TO(%u):", msg_bcgap_to(msg)); |
408 | } | 366 | } |
409 | tipc_printf(buf, "\n"); | 367 | tipc_printf(buf, "\n"); |
410 | if ((usr == CHANGEOVER_PROTOCOL) && (msg_msgcnt(msg))) { | 368 | if ((usr == CHANGEOVER_PROTOCOL) && (msg_msgcnt(msg))) |
411 | tipc_msg_dbg(buf, msg_get_wrapped(msg), " /"); | 369 | tipc_msg_dbg(buf, msg_get_wrapped(msg), " /"); |
412 | } | 370 | if ((usr == MSG_FRAGMENTER) && (msg_type(msg) == FIRST_FRAGMENT)) |
413 | if ((usr == MSG_FRAGMENTER) && (msg_type(msg) == FIRST_FRAGMENT)) { | ||
414 | tipc_msg_dbg(buf, msg_get_wrapped(msg), " /"); | 371 | tipc_msg_dbg(buf, msg_get_wrapped(msg), " /"); |
415 | } | ||
416 | } | 372 | } |
417 | 373 | ||
418 | #endif | 374 | #endif |