53 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM udp4 5#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_UDP_H7 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>53