Fix: move "user" attribute from field to type
[lttng-modules.git] / instrumentation / events / lttng-module / net.h
index 2085def5ee9445496e79f9e2c91f4689737d7515..53f95f498dbfa6580716c4a2007a7612db03ad47 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM net
 
@@ -10,7 +11,7 @@
 #include <linux/ip.h>
 #include <linux/ipv6.h>
 #include <linux/tcp.h>
-#include <linux/version.h>
+#include <lttng-kernel-version.h>
 #include <lttng-endian.h>
 #include <net/sock.h>
 
@@ -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 */
This page took 0.030908 seconds and 4 git commands to generate.