Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Tuong Lien and committed by
David S. Miller
cf5f55f7 eb18a510

+45
+2
net/tipc/bearer.c
··· 43 43 #include "bcast.h" 44 44 #include "netlink.h" 45 45 #include "udp_media.h" 46 + #include "trace.h" 46 47 47 48 #define MAX_ADDR_STR 60 48 49 ··· 609 608 if (!b) 610 609 return NOTIFY_DONE; 611 610 611 + trace_tipc_l2_device_event(dev, b, evt); 612 612 switch (evt) { 613 613 case NETDEV_CHANGE: 614 614 if (netif_carrier_ok(dev) && netif_oper_up(dev)) {
+43
net/tipc/trace.h
··· 113 113 {(0xcbe), "SYNCH_BEGIN_EVT" },\ 114 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 127 extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly; 117 128 118 129 int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf); ··· 388 377 TP_ARGS(name, os, ns, evt)) 389 378 DEFINE_FSM_EVENT(tipc_link_fsm); 390 379 DEFINE_FSM_EVENT(tipc_node_fsm); 380 + 381 + TRACE_EVENT(tipc_l2_device_event, 382 + 383 + TP_PROTO(struct net_device *dev, struct tipc_bearer *b, 384 + unsigned long evt), 385 + 386 + TP_ARGS(dev, b, evt), 387 + 388 + TP_STRUCT__entry( 389 + __string(dev_name, dev->name) 390 + __string(b_name, b->name) 391 + __field(unsigned long, evt) 392 + __field(u8, b_up) 393 + __field(u8, carrier) 394 + __field(u8, oper) 395 + ), 396 + 397 + TP_fast_assign( 398 + __assign_str(dev_name, dev->name); 399 + __assign_str(b_name, b->name); 400 + __entry->evt = evt; 401 + __entry->b_up = test_bit(0, &b->up); 402 + __entry->carrier = netif_carrier_ok(dev); 403 + __entry->oper = netif_oper_up(dev); 404 + ), 405 + 406 + TP_printk("%s on: <%s>/<%s> oper: %s carrier: %s bearer: %s\n", 407 + dev_evt_sym(__entry->evt), __get_str(dev_name), 408 + __get_str(b_name), (__entry->oper) ? "up" : "down", 409 + (__entry->carrier) ? "ok" : "notok", 410 + (__entry->b_up) ? "up" : "down") 411 + ); 391 412 392 413 #endif /* _TIPC_TRACE_H */ 393 414