aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorTuong Lien <tuong.t.lien@dektech.com.au>2018-12-18 21:18:00 -0500
committerDavid S. Miller <davem@davemloft.net>2018-12-19 14:49:25 -0500
commitcf5f55f7f01397015dfa390256f2c20ceaabfcfb (patch)
tree46b7f1e2d168b66b0cdce0f36659f1a6d7abbe84 /net/tipc
parenteb18a510b5cd4daeb9736ad8db57a9fc49db185b (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.c2
-rw-r--r--net/tipc/trace.h43
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
116extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly; 127extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly;
117 128
118int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf); 129int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf);
@@ -378,6 +389,38 @@ DEFINE_EVENT(tipc_fsm_class, fsm_name, \
378DEFINE_FSM_EVENT(tipc_link_fsm); 389DEFINE_FSM_EVENT(tipc_link_fsm);
379DEFINE_FSM_EVENT(tipc_node_fsm); 390DEFINE_FSM_EVENT(tipc_node_fsm);
380 391
392TRACE_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 */