#include <lttng/tracepoint-event.h>
#include <linux/udp.h>
+#include <lttng/kernel-version.h>
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,10,0))
+LTTNG_TRACEPOINT_ENUM(lttng_sk_family,
+ TP_ENUM_VALUES(
+ ctf_enum_value("AF_INET", AF_INET)
+ ctf_enum_value("AF_INET6", AF_INET6)
+ )
+)
+
+LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb,
+
+ TP_PROTO(int rc, struct sock *sk, struct sk_buff *skb),
+
+ TP_ARGS(rc, sk, skb),
+
+ TP_FIELDS(
+ ctf_integer(int, rc, rc)
+ ctf_integer(__u16, sport, ntohs(udp_hdr(skb)->source))
+ ctf_integer(__u16, dport, ntohs(udp_hdr(skb)->dest))
+ ctf_enum(lttng_sk_family, __u16, family, sk->sk_family)
+ /*
+ * The 'saddr' and 'daddr' fields from the upstream tracepoint
+ * are currently not extracted. It is recommended to use a
+ * tracepoint from the 'net' probe instead which includes all
+ * fields from the IP header.
+ */
+ )
+)
+#else
LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb,
TP_PROTO(int rc, struct sock *sk),
ctf_integer(__u16, lport, inet_sk(sk)->inet_num)
)
)
+#endif
#endif /* LTTNG_TRACE_UDP_H */