Linux 6.11-rc5
[linux-block.git] / include / trace / events / udp.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
296f7ea7
SM
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM udp
4
5#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ)
6#define _TRACE_UDP_H
7
8#include <linux/udp.h>
9#include <linux/tracepoint.h>
e9669a00 10#include <trace/events/net_probe_common.h>
296f7ea7
SM
11
12TRACE_EVENT(udp_fail_queue_rcv_skb,
13
e9669a00 14 TP_PROTO(int rc, struct sock *sk, struct sk_buff *skb),
296f7ea7 15
e9669a00 16 TP_ARGS(rc, sk, skb),
296f7ea7
SM
17
18 TP_STRUCT__entry(
19 __field(int, rc)
e9669a00
BS
20
21 __field(__u16, sport)
22 __field(__u16, dport)
23 __field(__u16, family)
24 __array(__u8, saddr, sizeof(struct sockaddr_in6))
25 __array(__u8, daddr, sizeof(struct sockaddr_in6))
296f7ea7
SM
26 ),
27
28 TP_fast_assign(
e9669a00
BS
29 const struct udphdr *uh = (const struct udphdr *)udp_hdr(skb);
30
296f7ea7 31 __entry->rc = rc;
e9669a00
BS
32
33 /* for filtering use */
34 __entry->sport = ntohs(uh->source);
35 __entry->dport = ntohs(uh->dest);
36 __entry->family = sk->sk_family;
37
38 memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
39 memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
40
9807080e 41 TP_STORE_ADDR_PORTS_SKB(skb, uh, __entry->saddr, __entry->daddr);
296f7ea7
SM
42 ),
43
e9669a00
BS
44 TP_printk("rc=%d family=%s src=%pISpc dest=%pISpc", __entry->rc,
45 show_family_name(__entry->family),
46 __entry->saddr, __entry->daddr)
296f7ea7
SM
47);
48
49#endif /* _TRACE_UDP_H */
50
51/* This part must be outside protection */
52#include <trace/define_trace.h>