0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM vsock
0004
0005 #if !defined(_TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H) || \
0006 defined(TRACE_HEADER_MULTI_READ)
0007 #define _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H
0008
0009 #include <linux/tracepoint.h>
0010
0011 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_STREAM);
0012 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_SEQPACKET);
0013
0014 #define show_type(val) \
0015 __print_symbolic(val, \
0016 { VIRTIO_VSOCK_TYPE_STREAM, "STREAM" }, \
0017 { VIRTIO_VSOCK_TYPE_SEQPACKET, "SEQPACKET" })
0018
0019 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_INVALID);
0020 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_REQUEST);
0021 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RESPONSE);
0022 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RST);
0023 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_SHUTDOWN);
0024 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RW);
0025 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_UPDATE);
0026 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_REQUEST);
0027
0028 #define show_op(val) \
0029 __print_symbolic(val, \
0030 { VIRTIO_VSOCK_OP_INVALID, "INVALID" }, \
0031 { VIRTIO_VSOCK_OP_REQUEST, "REQUEST" }, \
0032 { VIRTIO_VSOCK_OP_RESPONSE, "RESPONSE" }, \
0033 { VIRTIO_VSOCK_OP_RST, "RST" }, \
0034 { VIRTIO_VSOCK_OP_SHUTDOWN, "SHUTDOWN" }, \
0035 { VIRTIO_VSOCK_OP_RW, "RW" }, \
0036 { VIRTIO_VSOCK_OP_CREDIT_UPDATE, "CREDIT_UPDATE" }, \
0037 { VIRTIO_VSOCK_OP_CREDIT_REQUEST, "CREDIT_REQUEST" })
0038
0039 TRACE_EVENT(virtio_transport_alloc_pkt,
0040 TP_PROTO(
0041 __u32 src_cid, __u32 src_port,
0042 __u32 dst_cid, __u32 dst_port,
0043 __u32 len,
0044 __u16 type,
0045 __u16 op,
0046 __u32 flags
0047 ),
0048 TP_ARGS(
0049 src_cid, src_port,
0050 dst_cid, dst_port,
0051 len,
0052 type,
0053 op,
0054 flags
0055 ),
0056 TP_STRUCT__entry(
0057 __field(__u32, src_cid)
0058 __field(__u32, src_port)
0059 __field(__u32, dst_cid)
0060 __field(__u32, dst_port)
0061 __field(__u32, len)
0062 __field(__u16, type)
0063 __field(__u16, op)
0064 __field(__u32, flags)
0065 ),
0066 TP_fast_assign(
0067 __entry->src_cid = src_cid;
0068 __entry->src_port = src_port;
0069 __entry->dst_cid = dst_cid;
0070 __entry->dst_port = dst_port;
0071 __entry->len = len;
0072 __entry->type = type;
0073 __entry->op = op;
0074 __entry->flags = flags;
0075 ),
0076 TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x",
0077 __entry->src_cid, __entry->src_port,
0078 __entry->dst_cid, __entry->dst_port,
0079 __entry->len,
0080 show_type(__entry->type),
0081 show_op(__entry->op),
0082 __entry->flags)
0083 );
0084
0085 TRACE_EVENT(virtio_transport_recv_pkt,
0086 TP_PROTO(
0087 __u32 src_cid, __u32 src_port,
0088 __u32 dst_cid, __u32 dst_port,
0089 __u32 len,
0090 __u16 type,
0091 __u16 op,
0092 __u32 flags,
0093 __u32 buf_alloc,
0094 __u32 fwd_cnt
0095 ),
0096 TP_ARGS(
0097 src_cid, src_port,
0098 dst_cid, dst_port,
0099 len,
0100 type,
0101 op,
0102 flags,
0103 buf_alloc,
0104 fwd_cnt
0105 ),
0106 TP_STRUCT__entry(
0107 __field(__u32, src_cid)
0108 __field(__u32, src_port)
0109 __field(__u32, dst_cid)
0110 __field(__u32, dst_port)
0111 __field(__u32, len)
0112 __field(__u16, type)
0113 __field(__u16, op)
0114 __field(__u32, flags)
0115 __field(__u32, buf_alloc)
0116 __field(__u32, fwd_cnt)
0117 ),
0118 TP_fast_assign(
0119 __entry->src_cid = src_cid;
0120 __entry->src_port = src_port;
0121 __entry->dst_cid = dst_cid;
0122 __entry->dst_port = dst_port;
0123 __entry->len = len;
0124 __entry->type = type;
0125 __entry->op = op;
0126 __entry->flags = flags;
0127 __entry->buf_alloc = buf_alloc;
0128 __entry->fwd_cnt = fwd_cnt;
0129 ),
0130 TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x "
0131 "buf_alloc=%u fwd_cnt=%u",
0132 __entry->src_cid, __entry->src_port,
0133 __entry->dst_cid, __entry->dst_port,
0134 __entry->len,
0135 show_type(__entry->type),
0136 show_op(__entry->op),
0137 __entry->flags,
0138 __entry->buf_alloc,
0139 __entry->fwd_cnt)
0140 );
0141
0142 #endif
0143
0144 #undef TRACE_INCLUDE_FILE
0145 #define TRACE_INCLUDE_FILE vsock_virtio_transport_common
0146
0147
0148 #include <trace/define_trace.h>