Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
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>
10#include <trace/events/net_probe_common.h>
11
12TRACE_EVENT(udp_fail_queue_rcv_skb,
13
14 TP_PROTO(int rc, struct sock *sk, struct sk_buff *skb),
15
16 TP_ARGS(rc, sk, skb),
17
18 TP_STRUCT__entry(
19 __field(int, rc)
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))
26 ),
27
28 TP_fast_assign(
29 const struct udphdr *uh = (const struct udphdr *)udp_hdr(skb);
30
31 __entry->rc = rc;
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
41 TP_STORE_ADDR_PORTS_SKB(skb, uh, __entry->saddr, __entry->daddr);
42 ),
43
44 TP_printk("rc=%d family=%s src=%pISpc dest=%pISpc", __entry->rc,
45 show_family_name(__entry->family),
46 __entry->saddr, __entry->daddr)
47);
48
49#endif /* _TRACE_UDP_H */
50
51/* This part must be outside protection */
52#include <trace/define_trace.h>
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM udp
3
4#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_UDP_H
6
7#include <linux/udp.h>
8#include <linux/tracepoint.h>
9
10TRACE_EVENT(udp_fail_queue_rcv_skb,
11
12 TP_PROTO(int rc, struct sock *sk),
13
14 TP_ARGS(rc, sk),
15
16 TP_STRUCT__entry(
17 __field(int, rc)
18 __field(__u16, lport)
19 ),
20
21 TP_fast_assign(
22 __entry->rc = rc;
23 __entry->lport = inet_sk(sk)->inet_num;
24 ),
25
26 TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport)
27);
28
29#endif /* _TRACE_UDP_H */
30
31/* This part must be outside protection */
32#include <trace/define_trace.h>