X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fskb.h;h=b52cf682310a7201c05bb86007f622833d82820a;hb=e2ea881152a730f3a1ae9dca443dbdbe851ef682;hp=9a794499c667936a7b67377fbebda94e75da122a;hpb=b283666ff19841a28b0448c6a867beb2f809f11a;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/skb.h b/instrumentation/events/lttng-module/skb.h index 9a794499..b52cf682 100644 --- a/instrumentation/events/lttng-module/skb.h +++ b/instrumentation/events/lttng-module/skb.h @@ -1,75 +1,108 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM skb -#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_SKB_H +#if !defined(LTTNG_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_SKB_H +#include #include #include -#include +#include /* * Tracepoint for free an sk_buff: */ -TRACE_EVENT(kfree_skb, +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ + || LTTNG_KERNEL_RANGE(5,15,58, 5,16,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,477,10,1, 4,19,0,0,0,0)) +LTTNG_TRACEPOINT_ENUM(skb_drop_reason, + TP_ENUM_VALUES( + ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED) + ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET) + ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL) + ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM) + ctf_enum_value("SOCKET_FILTER", SKB_DROP_REASON_SOCKET_FILTER) + ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM) + ctf_enum_value("MAX", SKB_DROP_REASON_MAX) + ) +) +#elif (LTTNG_RHEL_KERNEL_RANGE(5,14,0,70,0,0, 5,15,0,0,0,0)) +LTTNG_TRACEPOINT_ENUM(skb_drop_reason, + TP_ENUM_VALUES( + ctf_enum_value("NOT_SPECIFIED", SKB_DROP_REASON_NOT_SPECIFIED) + ctf_enum_value("NO_SOCKET", SKB_DROP_REASON_NO_SOCKET) + ctf_enum_value("PKT_TOO_SMALL", SKB_DROP_REASON_PKT_TOO_SMALL) + ctf_enum_value("TCP_CSUM", SKB_DROP_REASON_TCP_CSUM) + ctf_enum_value("UDP_CSUM", SKB_DROP_REASON_UDP_CSUM) + ctf_enum_value("MAX", SKB_DROP_REASON_MAX) + ) +) +#endif - TP_PROTO(struct sk_buff *skb, void *location), +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ + || LTTNG_KERNEL_RANGE(5,15,58, 5,16,0) \ + || LTTNG_RHEL_KERNEL_RANGE(5,14,0,70,0,0, 5,15,0,0,0,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,477,10,1, 4,19,0,0,0,0)) +LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, - TP_ARGS(skb, location), + skb_kfree, - TP_STRUCT__entry( - __field( void *, skbaddr ) - __field( void *, location ) - __field( unsigned short, protocol ) - ), + TP_PROTO(struct sk_buff *skb, void *location, + enum skb_drop_reason reason), - TP_fast_assign( - tp_assign(skbaddr, skb); - tp_assign(location, location); - tp_assign(protocol, ntohs(skb->protocol)); - ), + TP_ARGS(skb, location, reason), - TP_printk("skbaddr=%p protocol=%u location=%p", - __entry->skbaddr, __entry->protocol, __entry->location) + TP_FIELDS( + ctf_integer_hex(void *, skbaddr, skb) + ctf_integer_hex(void *, location, location) + ctf_integer_network(unsigned short, protocol, skb->protocol) + ctf_enum(skb_drop_reason, uint8_t, reason, reason) + ) ) +#else +LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, -TRACE_EVENT(consume_skb, + skb_kfree, - TP_PROTO(struct sk_buff *skb), + TP_PROTO(struct sk_buff *skb, void *location), - TP_ARGS(skb), + TP_ARGS(skb, location), - TP_STRUCT__entry( - __field( void *, skbaddr ) - ), + TP_FIELDS( + ctf_integer_hex(void *, skbaddr, skb) + ctf_integer_hex(void *, location, location) + ctf_integer_network(unsigned short, protocol, skb->protocol) + ) +) +#endif + +LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, + + skb_consume, + + TP_PROTO(struct sk_buff *skb), - TP_fast_assign( - tp_assign(skbaddr, skb); - ), + TP_ARGS(skb), - TP_printk("skbaddr=%p", __entry->skbaddr) + TP_FIELDS( + ctf_integer_hex(void *, skbaddr, skb) + ) ) -TRACE_EVENT(skb_copy_datagram_iovec, +LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec, TP_PROTO(const struct sk_buff *skb, int len), TP_ARGS(skb, len), - TP_STRUCT__entry( - __field( const void *, skbaddr ) - __field( int, len ) - ), - - TP_fast_assign( - tp_assign(skbaddr, skb); - tp_assign(len, len); - ), - - TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) + TP_FIELDS( + ctf_integer_hex(const void *, skbaddr, skb) + ctf_integer(int, len, len) + ) ) -#endif /* _TRACE_SKB_H */ +#endif /* LTTNG_TRACE_SKB_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include