0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM skb
0004
0005 #if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_SKB_H
0007
0008 #include <linux/skbuff.h>
0009 #include <linux/netdevice.h>
0010 #include <linux/tracepoint.h>
0011
0012 #undef FN
0013 #define FN(reason) TRACE_DEFINE_ENUM(SKB_DROP_REASON_##reason);
0014 DEFINE_DROP_REASON(FN, FN)
0015
0016 #undef FN
0017 #undef FNe
0018 #define FN(reason) { SKB_DROP_REASON_##reason, #reason },
0019 #define FNe(reason) { SKB_DROP_REASON_##reason, #reason }
0020
0021
0022
0023
0024 TRACE_EVENT(kfree_skb,
0025
0026 TP_PROTO(struct sk_buff *skb, void *location,
0027 enum skb_drop_reason reason),
0028
0029 TP_ARGS(skb, location, reason),
0030
0031 TP_STRUCT__entry(
0032 __field(void *, skbaddr)
0033 __field(void *, location)
0034 __field(unsigned short, protocol)
0035 __field(enum skb_drop_reason, reason)
0036 ),
0037
0038 TP_fast_assign(
0039 __entry->skbaddr = skb;
0040 __entry->location = location;
0041 __entry->protocol = ntohs(skb->protocol);
0042 __entry->reason = reason;
0043 ),
0044
0045 TP_printk("skbaddr=%p protocol=%u location=%p reason: %s",
0046 __entry->skbaddr, __entry->protocol, __entry->location,
0047 __print_symbolic(__entry->reason,
0048 DEFINE_DROP_REASON(FN, FNe)))
0049 );
0050
0051 #undef FN
0052 #undef FNe
0053
0054 TRACE_EVENT(consume_skb,
0055
0056 TP_PROTO(struct sk_buff *skb),
0057
0058 TP_ARGS(skb),
0059
0060 TP_STRUCT__entry(
0061 __field( void *, skbaddr )
0062 ),
0063
0064 TP_fast_assign(
0065 __entry->skbaddr = skb;
0066 ),
0067
0068 TP_printk("skbaddr=%p", __entry->skbaddr)
0069 );
0070
0071 TRACE_EVENT(skb_copy_datagram_iovec,
0072
0073 TP_PROTO(const struct sk_buff *skb, int len),
0074
0075 TP_ARGS(skb, len),
0076
0077 TP_STRUCT__entry(
0078 __field( const void *, skbaddr )
0079 __field( int, len )
0080 ),
0081
0082 TP_fast_assign(
0083 __entry->skbaddr = skb;
0084 __entry->len = len;
0085 ),
0086
0087 TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len)
0088 );
0089
0090 #endif
0091
0092
0093 #include <trace/define_trace.h>