Commit | Line | Data |
---|---|---|
9f36eaed | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
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 | |
6ec43db8 | 8 | #include <probes/lttng-tracepoint-event.h> |
b283666f PW |
9 | #include <linux/skbuff.h> |
10 | #include <linux/netdevice.h> | |
2d042821 | 11 | #include <lttng-kernel-version.h> |
b283666f PW |
12 | |
13 | /* | |
14 | * Tracepoint for free an sk_buff: | |
15 | */ | |
2125da0d MJ |
16 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0)) |
17 | LTTNG_TRACEPOINT_ENUM(skb_drop_reason, | |
18 | TP_ENUM_VALUES( | |
19 | ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED) | |
20 | ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET) | |
21 | ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL) | |
22 | ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM) | |
23 | ctf_enum_value("TCP_FILTER", SKB_DROP_REASON_TCP_FILTER) | |
24 | ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM) | |
25 | ctf_enum_value("MAX", SKB_DROP_REASON_MAX) | |
26 | ) | |
27 | ) | |
28 | ||
29 | LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, | |
30 | ||
31 | skb_kfree, | |
32 | ||
33 | TP_PROTO(struct sk_buff *skb, void *location, | |
34 | enum skb_drop_reason reason), | |
35 | ||
36 | TP_ARGS(skb, location, reason), | |
37 | ||
38 | TP_FIELDS( | |
39 | ctf_integer_hex(void *, skbaddr, skb) | |
40 | ctf_integer_hex(void *, location, location) | |
41 | ctf_integer_network(unsigned short, protocol, skb->protocol) | |
42 | ctf_enum(skb_drop_reason, uint8_t, reason, reason) | |
43 | ) | |
44 | ) | |
45 | #else | |
3bc29f0a | 46 | LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, |
9cf29d3e MD |
47 | |
48 | skb_kfree, | |
b283666f PW |
49 | |
50 | TP_PROTO(struct sk_buff *skb, void *location), | |
51 | ||
52 | TP_ARGS(skb, location), | |
53 | ||
f127e61e | 54 | TP_FIELDS( |
fa91fcac MD |
55 | ctf_integer_hex(void *, skbaddr, skb) |
56 | ctf_integer_hex(void *, location, location) | |
f127e61e MD |
57 | ctf_integer_network(unsigned short, protocol, skb->protocol) |
58 | ) | |
b283666f | 59 | ) |
2125da0d | 60 | #endif |
b283666f | 61 | |
3bc29f0a | 62 | LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, |
9cf29d3e MD |
63 | |
64 | skb_consume, | |
b283666f PW |
65 | |
66 | TP_PROTO(struct sk_buff *skb), | |
67 | ||
68 | TP_ARGS(skb), | |
69 | ||
f127e61e | 70 | TP_FIELDS( |
fa91fcac | 71 | ctf_integer_hex(void *, skbaddr, skb) |
f127e61e | 72 | ) |
b283666f PW |
73 | ) |
74 | ||
3bc29f0a | 75 | LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec, |
b283666f PW |
76 | |
77 | TP_PROTO(const struct sk_buff *skb, int len), | |
78 | ||
79 | TP_ARGS(skb, len), | |
80 | ||
f127e61e | 81 | TP_FIELDS( |
fa91fcac | 82 | ctf_integer_hex(const void *, skbaddr, skb) |
f127e61e MD |
83 | ctf_integer(int, len, len) |
84 | ) | |
b283666f PW |
85 | ) |
86 | ||
3bc29f0a | 87 | #endif /* LTTNG_TRACE_SKB_H */ |
b283666f PW |
88 | |
89 | /* This part must be outside protection */ | |
6ec43db8 | 90 | #include <probes/define_trace.h> |