Back to home page

OSCL-LXR

 
 

    


0001 #undef TRACE_SYSTEM
0002 #define TRACE_SYSTEM bridge
0003 
0004 #if !defined(_TRACE_BRIDGE_H) || defined(TRACE_HEADER_MULTI_READ)
0005 #define _TRACE_BRIDGE_H
0006 
0007 #include <linux/netdevice.h>
0008 #include <linux/tracepoint.h>
0009 
0010 #include "../../../net/bridge/br_private.h"
0011 
0012 TRACE_EVENT(br_fdb_add,
0013 
0014     TP_PROTO(struct ndmsg *ndm, struct net_device *dev,
0015          const unsigned char *addr, u16 vid, u16 nlh_flags),
0016 
0017     TP_ARGS(ndm, dev, addr, vid, nlh_flags),
0018 
0019     TP_STRUCT__entry(
0020         __field(u8, ndm_flags)
0021         __string(dev, dev->name)
0022         __array(unsigned char, addr, ETH_ALEN)
0023         __field(u16, vid)
0024         __field(u16, nlh_flags)
0025     ),
0026 
0027     TP_fast_assign(
0028         __assign_str(dev, dev->name);
0029         memcpy(__entry->addr, addr, ETH_ALEN);
0030         __entry->vid = vid;
0031         __entry->nlh_flags = nlh_flags;
0032         __entry->ndm_flags = ndm->ndm_flags;
0033     ),
0034 
0035     TP_printk("dev %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u nlh_flags %04x ndm_flags %02x",
0036           __get_str(dev), __entry->addr[0], __entry->addr[1],
0037           __entry->addr[2], __entry->addr[3], __entry->addr[4],
0038           __entry->addr[5], __entry->vid,
0039           __entry->nlh_flags, __entry->ndm_flags)
0040 );
0041 
0042 TRACE_EVENT(br_fdb_external_learn_add,
0043 
0044     TP_PROTO(struct net_bridge *br, struct net_bridge_port *p,
0045          const unsigned char *addr, u16 vid),
0046 
0047     TP_ARGS(br, p, addr, vid),
0048 
0049     TP_STRUCT__entry(
0050         __string(br_dev, br->dev->name)
0051         __string(dev, p ? p->dev->name : "null")
0052         __array(unsigned char, addr, ETH_ALEN)
0053         __field(u16, vid)
0054     ),
0055 
0056     TP_fast_assign(
0057         __assign_str(br_dev, br->dev->name);
0058         __assign_str(dev, p ? p->dev->name : "null");
0059         memcpy(__entry->addr, addr, ETH_ALEN);
0060         __entry->vid = vid;
0061     ),
0062 
0063     TP_printk("br_dev %s port %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u",
0064           __get_str(br_dev), __get_str(dev), __entry->addr[0],
0065           __entry->addr[1], __entry->addr[2], __entry->addr[3],
0066           __entry->addr[4], __entry->addr[5], __entry->vid)
0067 );
0068 
0069 TRACE_EVENT(fdb_delete,
0070 
0071     TP_PROTO(struct net_bridge *br, struct net_bridge_fdb_entry *f),
0072 
0073     TP_ARGS(br, f),
0074 
0075     TP_STRUCT__entry(
0076         __string(br_dev, br->dev->name)
0077         __string(dev, f->dst ? f->dst->dev->name : "null")
0078         __array(unsigned char, addr, ETH_ALEN)
0079         __field(u16, vid)
0080     ),
0081 
0082     TP_fast_assign(
0083         __assign_str(br_dev, br->dev->name);
0084         __assign_str(dev, f->dst ? f->dst->dev->name : "null");
0085         memcpy(__entry->addr, f->key.addr.addr, ETH_ALEN);
0086         __entry->vid = f->key.vlan_id;
0087     ),
0088 
0089     TP_printk("br_dev %s dev %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u",
0090           __get_str(br_dev), __get_str(dev), __entry->addr[0],
0091           __entry->addr[1], __entry->addr[2], __entry->addr[3],
0092           __entry->addr[4], __entry->addr[5], __entry->vid)
0093 );
0094 
0095 TRACE_EVENT(br_fdb_update,
0096 
0097     TP_PROTO(struct net_bridge *br, struct net_bridge_port *source,
0098          const unsigned char *addr, u16 vid, unsigned long flags),
0099 
0100     TP_ARGS(br, source, addr, vid, flags),
0101 
0102     TP_STRUCT__entry(
0103         __string(br_dev, br->dev->name)
0104         __string(dev, source->dev->name)
0105         __array(unsigned char, addr, ETH_ALEN)
0106         __field(u16, vid)
0107         __field(unsigned long, flags)
0108     ),
0109 
0110     TP_fast_assign(
0111         __assign_str(br_dev, br->dev->name);
0112         __assign_str(dev, source->dev->name);
0113         memcpy(__entry->addr, addr, ETH_ALEN);
0114         __entry->vid = vid;
0115         __entry->flags = flags;
0116     ),
0117 
0118     TP_printk("br_dev %s source %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u flags 0x%lx",
0119           __get_str(br_dev), __get_str(dev), __entry->addr[0],
0120           __entry->addr[1], __entry->addr[2], __entry->addr[3],
0121           __entry->addr[4], __entry->addr[5], __entry->vid,
0122           __entry->flags)
0123 );
0124 
0125 
0126 #endif /* _TRACE_BRIDGE_H */
0127 
0128 /* This part must be outside protection */
0129 #include <trace/define_trace.h>