X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fnet.h;h=53f95f498dbfa6580716c4a2007a7612db03ad47;hb=79282ffdd4f0ad1237f99dcc1f0b36f81d797452;hp=2085def5ee9445496e79f9e2c91f4689737d7515;hpb=7299e758b109db074589f7879ae631b27c25dc05;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/net.h b/instrumentation/events/lttng-module/net.h index 2085def5..53f95f49 100644 --- a/instrumentation/events/lttng-module/net.h +++ b/instrumentation/events/lttng-module/net.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #undef TRACE_SYSTEM #define TRACE_SYSTEM net @@ -10,7 +11,7 @@ #include #include #include -#include +#include #include #include @@ -35,52 +36,52 @@ static struct lttng_event_field tcpfields[] = { [0] = { .name = "source_port", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [1] = { .name = "dest_port", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [2] = { .name = "seq", .type = __type_integer(uint32_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [3] = { .name = "ack_seq", .type = __type_integer(uint32_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [4] = { .name = "data_offset", .type = __type_integer(uint8_t, 4, 4, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [5] = { .name = "reserved", .type = __type_integer(uint8_t, 3, 1, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [6] = { .name = "flags", .type = __type_integer(uint8_t, 9, 1, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), }, [7] = { .name = "window_size", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [8] = { .name = "checksum", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), }, [9] = { .name = "urg_ptr", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, }; @@ -182,37 +183,37 @@ static struct lttng_event_field ipv4fields[] = { [0] = { .name = "version", .type = __type_integer(uint8_t, 4, 4, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [1] = { .name = "ihl", .type = __type_integer(uint8_t, 4, 4, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [2] = { .name = "tos", .type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [3] = { .name = "tot_len", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [4] = { .name = "id", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), }, [5] = { .name = "frag_off", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [6] = { .name = "ttl", .type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [7] = { .name = "protocol", @@ -227,6 +228,7 @@ static struct lttng_event_field ipv4fields[] = { .reverse_byte_order = __BIG_ENDIAN != __BYTE_ORDER, .base = 10, + .user = 0, .encoding = lttng_encode_none, }, }, @@ -234,7 +236,7 @@ static struct lttng_event_field ipv4fields[] = { [8] = { .name = "checksum", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), }, [9] = { .name = "saddr", @@ -242,7 +244,7 @@ static struct lttng_event_field ipv4fields[] = { .atype = atype_array, .u.array.elem_type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), .u.array.length = 4, .u.array.elem_alignment = lttng_alignof(uint8_t), }, @@ -253,7 +255,7 @@ static struct lttng_event_field ipv4fields[] = { .atype = atype_array, .u.array.elem_type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), .u.array.length = 4, .u.array.elem_alignment = lttng_alignof(uint8_t), }, @@ -269,6 +271,7 @@ static struct lttng_event_field ipv4fields[] = { .signedness = 0, .reverse_byte_order = 0, .base = 10, + .user = 0, .encoding = lttng_encode_none, }, }, @@ -288,12 +291,12 @@ static struct lttng_event_field ipv6fields[] = { [0] = { .name = "version", .type = __type_integer(uint8_t, 4, 4, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [1] = { .name = "prio", .type = __type_integer(uint8_t, 4, 4, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [2] = { .name = "flow_lbl", @@ -301,7 +304,7 @@ static struct lttng_event_field ipv6fields[] = { .atype = atype_array, .u.array.elem_type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), .u.array.length = 3, .u.array.elem_alignment = lttng_alignof(uint8_t), }, @@ -309,7 +312,7 @@ static struct lttng_event_field ipv6fields[] = { [3] = { .name = "payload_len", .type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [4] = { .name = "nexthdr", @@ -324,6 +327,7 @@ static struct lttng_event_field ipv6fields[] = { .reverse_byte_order = __BIG_ENDIAN != __BYTE_ORDER, .base = 10, + .user = 0, .encoding = lttng_encode_none, }, }, @@ -331,7 +335,7 @@ static struct lttng_event_field ipv6fields[] = { [5] = { .name = "hop_limit", .type = __type_integer(uint8_t, 0, 0, 0, - __BIG_ENDIAN, 10, none), + __BIG_ENDIAN, 0, 10, none), }, [6] = { .name = "saddr", @@ -339,7 +343,7 @@ static struct lttng_event_field ipv6fields[] = { .atype = atype_array, .u.array.elem_type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), .u.array.length = 8, .u.array.elem_alignment = lttng_alignof(uint16_t), }, @@ -350,7 +354,7 @@ static struct lttng_event_field ipv6fields[] = { .atype = atype_array, .u.array.elem_type = __type_integer(uint16_t, 0, 0, 0, - __BIG_ENDIAN, 16, none), + __BIG_ENDIAN, 0, 16, none), .u.array.length = 8, .u.array.elem_alignment = lttng_alignof(uint16_t), }, @@ -366,6 +370,7 @@ static struct lttng_event_field ipv6fields[] = { .signedness = 0, .reverse_byte_order = 0, .base = 10, + .user = 0, .encoding = lttng_encode_none, }, }, @@ -438,30 +443,18 @@ LTTNG_TRACEPOINT_ENUM(net_network_header, LTTNG_TRACEPOINT_EVENT(net_dev_xmit, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) TP_PROTO(struct sk_buff *skb, int rc, struct net_device *dev, unsigned int skb_len), TP_ARGS(skb, rc, dev, skb_len), -#else - TP_PROTO(struct sk_buff *skb, - int rc), - - TP_ARGS(skb, rc), -#endif TP_FIELDS( ctf_integer_hex(void *, skbaddr, skb) ctf_integer(int, rc, rc) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) ctf_integer(unsigned int, len, skb_len) ctf_string(name, dev->name) -#else - ctf_integer(unsigned int, len, skb->len) - ctf_string(name, skb->dev->name) -#endif ) ) @@ -564,6 +557,175 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_template, TP_ARGS(skb) ) + +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) + +/* Trace events for the receive entry points */ +LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_receive_entry_template, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb), + + TP_FIELDS( + ctf_integer_hex(const void *, skbaddr, skb) + ) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + napi_gro_frags_entry, + + net_napi_gro_frags_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + napi_gro_receive_entry, + + net_napi_gro_receive_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + netif_receive_skb_entry, + + net_if_receive_skb_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + netif_rx_entry, + + net_if_rx_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + netif_rx_ni_entry, + + net_if_rx_ni_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +#endif /* kernel > 3.14 */ + +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0)) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template, + + netif_receive_skb_list_entry, + + net_if_receive_skb_list_entry, + + TP_PROTO(const struct sk_buff *skb), + + TP_ARGS(skb) +) + +#endif /* kernel > 4.19 */ + +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0)) + +/* Trace events for the receive exit points */ +LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_receive_exit_template, + + TP_PROTO(int ret), + + TP_ARGS(ret), + + TP_FIELDS( + ctf_integer(int, ret, ret) + ) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + napi_gro_frags_exit, + + net_napi_gro_frags_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + napi_gro_receive_exit, + + net_napi_gro_receive_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + netif_receive_skb_exit, + + net_if_receive_skb_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + netif_rx_exit, + + net_if_rx_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + netif_rx_ni_exit, + + net_if_rx_ni_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_exit_template, + + netif_receive_skb_list_exit, + + net_if_receive_skb_list_exit, + + TP_PROTO(int ret), + + TP_ARGS(ret) +) + +#endif /* kernel > 5.0.0 */ + #endif /* LTTNG_TRACE_NET_H */ /* This part must be outside protection */