X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fskb.h;h=b52cf682310a7201c05bb86007f622833d82820a;hb=e2ea881152a730f3a1ae9dca443dbdbe851ef682;hp=106478bdbca8761060b996f71ebbc3c162ea5c18;hpb=3bc29f0a41b3c803245b845db2e1909042e72e9c;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/skb.h b/instrumentation/events/lttng-module/skb.h index 106478bd..b52cf682 100644 --- a/instrumentation/events/lttng-module/skb.h +++ b/instrumentation/events/lttng-module/skb.h @@ -1,42 +1,82 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM skb #if !defined(LTTNG_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) #define LTTNG_TRACE_SKB_H -#include "../../../probes/lttng-tracepoint-event.h" +#include #include #include -#include +#include /* * Tracepoint for free an sk_buff: */ +#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 + +#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, skb_kfree, - TP_PROTO(struct sk_buff *skb, void *location), + TP_PROTO(struct sk_buff *skb, void *location, + enum skb_drop_reason reason), - TP_ARGS(skb, location), + TP_ARGS(skb, location, reason), + + 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, + + skb_kfree, - TP_STRUCT__entry( - __field( void *, skbaddr ) - __field( void *, location ) - __field( unsigned short, protocol ) - ), + TP_PROTO(struct sk_buff *skb, void *location), - TP_fast_assign( - tp_assign(skbaddr, skb) - tp_assign(location, location) - tp_assign(protocol, ntohs(skb->protocol)) - ), + TP_ARGS(skb, location), - 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) + ) ) +#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, skb_consume, @@ -45,40 +85,24 @@ LTTNG_TRACEPOINT_EVENT_MAP(consume_skb, TP_ARGS(skb), - TP_STRUCT__entry( - __field( void *, skbaddr ) - ), - - TP_fast_assign( - tp_assign(skbaddr, skb) - ), - - TP_printk("skbaddr=%p", __entry->skbaddr) + TP_FIELDS( + ctf_integer_hex(void *, skbaddr, skb) + ) ) -#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) 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 #endif /* LTTNG_TRACE_SKB_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include