Commit | Line | Data |
---|---|---|
b7cdc182 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
b283666f PW |
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM skb | |
4 | ||
3bc29f0a MD |
5 | #if !defined(LTTNG_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define LTTNG_TRACE_SKB_H | |
b283666f | 7 | |
3b4aafcb | 8 | #include <lttng/tracepoint-event.h> |
b283666f PW |
9 | #include <linux/skbuff.h> |
10 | #include <linux/netdevice.h> | |
5f4c791e | 11 | #include <lttng/kernel-version.h> |
b283666f PW |
12 | |
13 | /* | |
14 | * Tracepoint for free an sk_buff: | |
15 | */ | |
96c477da | 16 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ |
f00168b5 KS |
17 | || LTTNG_KERNEL_RANGE(5,15,58, 5,16,0) \ |
18 | || LTTNG_RHEL_KERNEL_RANGE(4,18,0,477,10,1, 4,19,0,0,0,0)) | |
4b329355 MJ |
19 | LTTNG_TRACEPOINT_ENUM(skb_drop_reason, |
20 | TP_ENUM_VALUES( | |
21 | ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED) | |
22 | ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET) | |
23 | ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL) | |
24 | ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM) | |
9e77c175 | 25 | ctf_enum_value("SOCKET_FILTER", SKB_DROP_REASON_SOCKET_FILTER) |
4b329355 MJ |
26 | ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM) |
27 | ctf_enum_value("MAX", SKB_DROP_REASON_MAX) | |
28 | ) | |
29 | ) | |
63e36d2e MJ |
30 | #elif (LTTNG_RHEL_KERNEL_RANGE(5,14,0,70,0,0, 5,15,0,0,0,0)) |
31 | LTTNG_TRACEPOINT_ENUM(skb_drop_reason, | |
32 | TP_ENUM_VALUES( | |
33 | ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED) | |
34 | ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET) | |
35 | ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL) | |
36 | ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM) | |
37 | ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM) | |
38 | ctf_enum_value("MAX", SKB_DROP_REASON_MAX) | |
39 | ) | |
40 | ) | |
41 | #endif | |
4b329355 | 42 | |
63e36d2e MJ |
43 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ |
44 | || LTTNG_KERNEL_RANGE(5,15,58, 5,16,0) \ | |
f00168b5 KS |
45 | || LTTNG_RHEL_KERNEL_RANGE(5,14,0,70,0,0, 5,15,0,0,0,0) \ |
46 | || LTTNG_RHEL_KERNEL_RANGE(4,18,0,477,10,1, 4,19,0,0,0,0)) | |
4b329355 MJ |
47 | LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, |
48 | ||
49 | skb_kfree, | |
50 | ||
51 | TP_PROTO(struct sk_buff *skb, void *location, | |
52 | enum skb_drop_reason reason), | |
53 | ||
54 | TP_ARGS(skb, location, reason), | |
55 | ||
56 | TP_FIELDS( | |
57 | ctf_integer_hex(void *, skbaddr, skb) | |
58 | ctf_integer_hex(void *, location, location) | |
59 | ctf_integer_network(unsigned short, protocol, skb->protocol) | |
60 | ctf_enum(skb_drop_reason, uint8_t, reason, reason) | |
61 | ) | |
62 | ) | |
63 | #else | |
3bc29f0a | 64 | LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, |
9cf29d3e MD |
65 | |
66 | skb_kfree, | |
b283666f PW |
67 | |
68 | TP_PROTO(struct sk_buff *skb, void *location), | |
69 | ||
70 | TP_ARGS(skb, location), | |
71 | ||
f127e61e | 72 | TP_FIELDS( |
fa91fcac MD |
73 | ctf_integer_hex(void *, skbaddr, skb) |
74 | ctf_integer_hex(void *, location, location) | |
f127e61e MD |
75 | ctf_integer_network(unsigned short, protocol, skb->protocol) |
76 | ) | |
b283666f | 77 | ) |
4b329355 | 78 | #endif |
b283666f | 79 | |
6bc8ed7d MJ |
80 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0)) |
81 | LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, | |
82 | ||
83 | skb_consume, | |
84 | ||
85 | TP_PROTO(struct sk_buff *skb, void *location), | |
86 | ||
87 | TP_ARGS(skb, location), | |
88 | ||
89 | TP_FIELDS( | |
90 | ctf_integer_hex(void *, skbaddr, skb) | |
91 | ctf_integer_hex(void *, location, location) | |
92 | ) | |
93 | ) | |
94 | #else | |
3bc29f0a | 95 | LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, |
9cf29d3e MD |
96 | |
97 | skb_consume, | |
b283666f PW |
98 | |
99 | TP_PROTO(struct sk_buff *skb), | |
100 | ||
101 | TP_ARGS(skb), | |
102 | ||
f127e61e | 103 | TP_FIELDS( |
fa91fcac | 104 | ctf_integer_hex(void *, skbaddr, skb) |
f127e61e | 105 | ) |
b283666f | 106 | ) |
6bc8ed7d | 107 | #endif |
b283666f | 108 | |
3bc29f0a | 109 | LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec, |
b283666f PW |
110 | |
111 | TP_PROTO(const struct sk_buff *skb, int len), | |
112 | ||
113 | TP_ARGS(skb, len), | |
114 | ||
f127e61e | 115 | TP_FIELDS( |
fa91fcac | 116 | ctf_integer_hex(const void *, skbaddr, skb) |
f127e61e MD |
117 | ctf_integer(int, len, len) |
118 | ) | |
b283666f PW |
119 | ) |
120 | ||
3bc29f0a | 121 | #endif /* LTTNG_TRACE_SKB_H */ |
b283666f PW |
122 | |
123 | /* This part must be outside protection */ | |
3b4aafcb | 124 | #include <lttng/define_trace.h> |