xref: /openbmc/linux/include/trace/events/vsock_virtio_transport_common.h (revision 4ed91d48259d9ddd378424d008f2e6559f7e78f8)
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM vsock
3 
4 #if !defined(_TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H) || \
5     defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H
7 
8 #include <linux/tracepoint.h>
9 
10 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_STREAM);
11 
12 #define show_type(val) \
13 	__print_symbolic(val, { VIRTIO_VSOCK_TYPE_STREAM, "STREAM" })
14 
15 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_INVALID);
16 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_REQUEST);
17 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RESPONSE);
18 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RST);
19 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_SHUTDOWN);
20 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RW);
21 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_UPDATE);
22 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_REQUEST);
23 
24 #define show_op(val) \
25 	__print_symbolic(val, \
26 			 { VIRTIO_VSOCK_OP_INVALID, "INVALID" }, \
27 			 { VIRTIO_VSOCK_OP_REQUEST, "REQUEST" }, \
28 			 { VIRTIO_VSOCK_OP_RESPONSE, "RESPONSE" }, \
29 			 { VIRTIO_VSOCK_OP_RST, "RST" }, \
30 			 { VIRTIO_VSOCK_OP_SHUTDOWN, "SHUTDOWN" }, \
31 			 { VIRTIO_VSOCK_OP_RW, "RW" }, \
32 			 { VIRTIO_VSOCK_OP_CREDIT_UPDATE, "CREDIT_UPDATE" }, \
33 			 { VIRTIO_VSOCK_OP_CREDIT_REQUEST, "CREDIT_REQUEST" })
34 
35 TRACE_EVENT(virtio_transport_alloc_pkt,
36 	TP_PROTO(
37 		 __u32 src_cid, __u32 src_port,
38 		 __u32 dst_cid, __u32 dst_port,
39 		 __u32 len,
40 		 __u16 type,
41 		 __u16 op,
42 		 __u32 flags
43 	),
44 	TP_ARGS(
45 		src_cid, src_port,
46 		dst_cid, dst_port,
47 		len,
48 		type,
49 		op,
50 		flags
51 	),
52 	TP_STRUCT__entry(
53 		__field(__u32, src_cid)
54 		__field(__u32, src_port)
55 		__field(__u32, dst_cid)
56 		__field(__u32, dst_port)
57 		__field(__u32, len)
58 		__field(__u16, type)
59 		__field(__u16, op)
60 		__field(__u32, flags)
61 	),
62 	TP_fast_assign(
63 		__entry->src_cid = src_cid;
64 		__entry->src_port = src_port;
65 		__entry->dst_cid = dst_cid;
66 		__entry->dst_port = dst_port;
67 		__entry->len = len;
68 		__entry->type = type;
69 		__entry->op = op;
70 		__entry->flags = flags;
71 	),
72 	TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x",
73 		  __entry->src_cid, __entry->src_port,
74 		  __entry->dst_cid, __entry->dst_port,
75 		  __entry->len,
76 		  show_type(__entry->type),
77 		  show_op(__entry->op),
78 		  __entry->flags)
79 );
80 
81 TRACE_EVENT(virtio_transport_recv_pkt,
82 	TP_PROTO(
83 		 __u32 src_cid, __u32 src_port,
84 		 __u32 dst_cid, __u32 dst_port,
85 		 __u32 len,
86 		 __u16 type,
87 		 __u16 op,
88 		 __u32 flags,
89 		 __u32 buf_alloc,
90 		 __u32 fwd_cnt
91 	),
92 	TP_ARGS(
93 		src_cid, src_port,
94 		dst_cid, dst_port,
95 		len,
96 		type,
97 		op,
98 		flags,
99 		buf_alloc,
100 		fwd_cnt
101 	),
102 	TP_STRUCT__entry(
103 		__field(__u32, src_cid)
104 		__field(__u32, src_port)
105 		__field(__u32, dst_cid)
106 		__field(__u32, dst_port)
107 		__field(__u32, len)
108 		__field(__u16, type)
109 		__field(__u16, op)
110 		__field(__u32, flags)
111 		__field(__u32, buf_alloc)
112 		__field(__u32, fwd_cnt)
113 	),
114 	TP_fast_assign(
115 		__entry->src_cid = src_cid;
116 		__entry->src_port = src_port;
117 		__entry->dst_cid = dst_cid;
118 		__entry->dst_port = dst_port;
119 		__entry->len = len;
120 		__entry->type = type;
121 		__entry->op = op;
122 		__entry->flags = flags;
123 		__entry->buf_alloc = buf_alloc;
124 		__entry->fwd_cnt = fwd_cnt;
125 	),
126 	TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x "
127 		  "buf_alloc=%u fwd_cnt=%u",
128 		  __entry->src_cid, __entry->src_port,
129 		  __entry->dst_cid, __entry->dst_port,
130 		  __entry->len,
131 		  show_type(__entry->type),
132 		  show_op(__entry->op),
133 		  __entry->flags,
134 		  __entry->buf_alloc,
135 		  __entry->fwd_cnt)
136 );
137 
138 #endif /* _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H */
139 
140 #undef TRACE_INCLUDE_FILE
141 #define TRACE_INCLUDE_FILE vsock_virtio_transport_common
142 
143 /* This part must be outside protection */
144 #include <trace/define_trace.h>
145