diff options
author | Tuong Lien <tuong.t.lien@dektech.com.au> | 2018-12-18 21:18:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-19 14:49:25 -0500 |
commit | cf5f55f7f01397015dfa390256f2c20ceaabfcfb (patch) | |
tree | 46b7f1e2d168b66b0cdce0f36659f1a6d7abbe84 /net/tipc | |
parent | eb18a510b5cd4daeb9736ad8db57a9fc49db185b (diff) |
tipc: add trace_events for tipc bearer
The commit adds the new trace_event for TIPC bearer, L2 device event:
trace_tipc_l2_device_event()
Also, it puts the trace at the tipc_l2_device_event() function, then
the device/bearer events and related info can be traced out during
runtime when needed.
Acked-by: Ying Xue <ying.xue@windriver.com>
Tested-by: Ying Xue <ying.xue@windriver.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/bearer.c | 2 | ||||
-rw-r--r-- | net/tipc/trace.h | 43 |
2 files changed, 45 insertions, 0 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index e32294f37c29..fb2c0d8f359f 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include "bcast.h" | 43 | #include "bcast.h" |
44 | #include "netlink.h" | 44 | #include "netlink.h" |
45 | #include "udp_media.h" | 45 | #include "udp_media.h" |
46 | #include "trace.h" | ||
46 | 47 | ||
47 | #define MAX_ADDR_STR 60 | 48 | #define MAX_ADDR_STR 60 |
48 | 49 | ||
@@ -608,6 +609,7 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt, | |||
608 | if (!b) | 609 | if (!b) |
609 | return NOTIFY_DONE; | 610 | return NOTIFY_DONE; |
610 | 611 | ||
612 | trace_tipc_l2_device_event(dev, b, evt); | ||
611 | switch (evt) { | 613 | switch (evt) { |
612 | case NETDEV_CHANGE: | 614 | case NETDEV_CHANGE: |
613 | if (netif_carrier_ok(dev) && netif_oper_up(dev)) { | 615 | if (netif_carrier_ok(dev) && netif_oper_up(dev)) { |
diff --git a/net/tipc/trace.h b/net/tipc/trace.h index 4d05141866aa..4d8e00483afc 100644 --- a/net/tipc/trace.h +++ b/net/tipc/trace.h | |||
@@ -113,6 +113,17 @@ enum { | |||
113 | {(0xcbe), "SYNCH_BEGIN_EVT" },\ | 113 | {(0xcbe), "SYNCH_BEGIN_EVT" },\ |
114 | {(0xcee), "SYNCH_END_EVT" }) | 114 | {(0xcee), "SYNCH_END_EVT" }) |
115 | 115 | ||
116 | /* Bearer, net device events: */ | ||
117 | #define dev_evt_sym(val) \ | ||
118 | __print_symbolic(val, \ | ||
119 | {(NETDEV_CHANGE), "NETDEV_CHANGE" },\ | ||
120 | {(NETDEV_GOING_DOWN), "NETDEV_GOING_DOWN" },\ | ||
121 | {(NETDEV_UP), "NETDEV_UP" },\ | ||
122 | {(NETDEV_CHANGEMTU), "NETDEV_CHANGEMTU" },\ | ||
123 | {(NETDEV_CHANGEADDR), "NETDEV_CHANGEADDR" },\ | ||
124 | {(NETDEV_UNREGISTER), "NETDEV_UNREGISTER" },\ | ||
125 | {(NETDEV_CHANGENAME), "NETDEV_CHANGENAME" }) | ||
126 | |||
116 | extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly; | 127 | extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly; |
117 | 128 | ||
118 | int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf); | 129 | int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf); |
@@ -378,6 +389,38 @@ DEFINE_EVENT(tipc_fsm_class, fsm_name, \ | |||
378 | DEFINE_FSM_EVENT(tipc_link_fsm); | 389 | DEFINE_FSM_EVENT(tipc_link_fsm); |
379 | DEFINE_FSM_EVENT(tipc_node_fsm); | 390 | DEFINE_FSM_EVENT(tipc_node_fsm); |
380 | 391 | ||
392 | TRACE_EVENT(tipc_l2_device_event, | ||
393 | |||
394 | TP_PROTO(struct net_device *dev, struct tipc_bearer *b, | ||
395 | unsigned long evt), | ||
396 | |||
397 | TP_ARGS(dev, b, evt), | ||
398 | |||
399 | TP_STRUCT__entry( | ||
400 | __string(dev_name, dev->name) | ||
401 | __string(b_name, b->name) | ||
402 | __field(unsigned long, evt) | ||
403 | __field(u8, b_up) | ||
404 | __field(u8, carrier) | ||
405 | __field(u8, oper) | ||
406 | ), | ||
407 | |||
408 | TP_fast_assign( | ||
409 | __assign_str(dev_name, dev->name); | ||
410 | __assign_str(b_name, b->name); | ||
411 | __entry->evt = evt; | ||
412 | __entry->b_up = test_bit(0, &b->up); | ||
413 | __entry->carrier = netif_carrier_ok(dev); | ||
414 | __entry->oper = netif_oper_up(dev); | ||
415 | ), | ||
416 | |||
417 | TP_printk("%s on: <%s>/<%s> oper: %s carrier: %s bearer: %s\n", | ||
418 | dev_evt_sym(__entry->evt), __get_str(dev_name), | ||
419 | __get_str(b_name), (__entry->oper) ? "up" : "down", | ||
420 | (__entry->carrier) ? "ok" : "notok", | ||
421 | (__entry->b_up) ? "up" : "down") | ||
422 | ); | ||
423 | |||
381 | #endif /* _TIPC_TRACE_H */ | 424 | #endif /* _TIPC_TRACE_H */ |
382 | 425 | ||
383 | /* This part must be outside protection */ | 426 | /* This part must be outside protection */ |