Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM skb |
4 | |
5 | #if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define _TRACE_SKB_H |
7 | |
8 | #include <linux/skbuff.h> |
9 | #include <linux/netdevice.h> |
10 | #include <linux/tracepoint.h> |
11 | |
12 | #undef FN |
13 | #define FN(reason) TRACE_DEFINE_ENUM(SKB_DROP_REASON_##reason); |
14 | DEFINE_DROP_REASON(FN, FN) |
15 | |
16 | #undef FN |
17 | #undef FNe |
18 | #define FN(reason) { SKB_DROP_REASON_##reason, #reason }, |
19 | #define FNe(reason) { SKB_DROP_REASON_##reason, #reason } |
20 | |
21 | /* |
22 | * Tracepoint for free an sk_buff: |
23 | */ |
24 | TRACE_EVENT(kfree_skb, |
25 | |
26 | TP_PROTO(struct sk_buff *skb, void *location, |
27 | enum skb_drop_reason reason), |
28 | |
29 | TP_ARGS(skb, location, reason), |
30 | |
31 | TP_STRUCT__entry( |
32 | __field(void *, skbaddr) |
33 | __field(void *, location) |
34 | __field(unsigned short, protocol) |
35 | __field(enum skb_drop_reason, reason) |
36 | ), |
37 | |
38 | TP_fast_assign( |
39 | __entry->skbaddr = skb; |
40 | __entry->location = location; |
41 | __entry->protocol = ntohs(skb->protocol); |
42 | __entry->reason = reason; |
43 | ), |
44 | |
45 | TP_printk("skbaddr=%p protocol=%u location=%pS reason: %s", |
46 | __entry->skbaddr, __entry->protocol, __entry->location, |
47 | __print_symbolic(__entry->reason, |
48 | DEFINE_DROP_REASON(FN, FNe))) |
49 | ); |
50 | |
51 | #undef FN |
52 | #undef FNe |
53 | |
54 | TRACE_EVENT(consume_skb, |
55 | |
56 | TP_PROTO(struct sk_buff *skb, void *location), |
57 | |
58 | TP_ARGS(skb, location), |
59 | |
60 | TP_STRUCT__entry( |
61 | __field( void *, skbaddr) |
62 | __field( void *, location) |
63 | ), |
64 | |
65 | TP_fast_assign( |
66 | __entry->skbaddr = skb; |
67 | __entry->location = location; |
68 | ), |
69 | |
70 | TP_printk("skbaddr=%p location=%pS", __entry->skbaddr, __entry->location) |
71 | ); |
72 | |
73 | TRACE_EVENT(skb_copy_datagram_iovec, |
74 | |
75 | TP_PROTO(const struct sk_buff *skb, int len), |
76 | |
77 | TP_ARGS(skb, len), |
78 | |
79 | TP_STRUCT__entry( |
80 | __field( const void *, skbaddr ) |
81 | __field( int, len ) |
82 | ), |
83 | |
84 | TP_fast_assign( |
85 | __entry->skbaddr = skb; |
86 | __entry->len = len; |
87 | ), |
88 | |
89 | TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) |
90 | ); |
91 | |
92 | #endif /* _TRACE_SKB_H */ |
93 | |
94 | /* This part must be outside protection */ |
95 | #include <trace/define_trace.h> |
96 |
Warning: This file is not a C or C++ file. It does not have highlighting.