xref: /wlan-driver/qca-wifi-host-cmn/qdf/linux/src/i_qdf_tracepoint.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name /**
20*5113495bSYour Name  * DOC: i_qdf_tracepoint.h
21*5113495bSYour Name  * This file provides internal interface for triggering tracepoints
22*5113495bSYour Name  */
23*5113495bSYour Name #if  !defined(_I_QDF_TRACEPOINT_H)
24*5113495bSYour Name #define _I_QDF_TRACEPOINT_H
25*5113495bSYour Name 
26*5113495bSYour Name #include <qdf_tracepoint_defs.h>
27*5113495bSYour Name 
28*5113495bSYour Name /**
29*5113495bSYour Name  * __qdf_trace_dp_rx_tcp_pkt_enabled() - Get the dp_rx_tcp_pkt tracepoint
30*5113495bSYour Name  *  enabled or disabled state
31*5113495bSYour Name  *
32*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
33*5113495bSYour Name  */
34*5113495bSYour Name static inline
__qdf_trace_dp_rx_tcp_pkt_enabled(void)35*5113495bSYour Name bool __qdf_trace_dp_rx_tcp_pkt_enabled(void)
36*5113495bSYour Name {
37*5113495bSYour Name 	return trace_dp_rx_tcp_pkt_enabled();
38*5113495bSYour Name }
39*5113495bSYour Name 
40*5113495bSYour Name /**
41*5113495bSYour Name  * __qdf_trace_dp_rx_tcp_pkt() - Trace tcp packet in rx direction
42*5113495bSYour Name  * @skb: pointer to network buffer
43*5113495bSYour Name  * @tcp_seq_num: TCP sequence number
44*5113495bSYour Name  * @tcp_ack_num: TCP acknowlegment number
45*5113495bSYour Name  * @srcport: TCP source port
46*5113495bSYour Name  * @dstport: TCP destination port
47*5113495bSYour Name  * @latency: latency
48*5113495bSYour Name  *
49*5113495bSYour Name  * Return: None
50*5113495bSYour Name  */
51*5113495bSYour Name static inline
__qdf_trace_dp_rx_tcp_pkt(struct sk_buff * skb,uint32_t tcp_seq_num,uint32_t tcp_ack_num,uint16_t srcport,uint16_t dstport,uint64_t latency)52*5113495bSYour Name void __qdf_trace_dp_rx_tcp_pkt(struct sk_buff *skb, uint32_t tcp_seq_num,
53*5113495bSYour Name 			       uint32_t tcp_ack_num, uint16_t srcport,
54*5113495bSYour Name 			       uint16_t dstport, uint64_t latency)
55*5113495bSYour Name {
56*5113495bSYour Name 	trace_dp_rx_tcp_pkt(skb, tcp_seq_num, tcp_ack_num, srcport, dstport,
57*5113495bSYour Name 			    latency);
58*5113495bSYour Name }
59*5113495bSYour Name 
60*5113495bSYour Name /**
61*5113495bSYour Name  * __qdf_trace_dp_tx_comp_tcp_pkt_enabled() - Get the dp_tx_comp_tcp_pkt
62*5113495bSYour Name  *  tracepoint enabled or disabled state
63*5113495bSYour Name  *
64*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
65*5113495bSYour Name  */
66*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_tcp_pkt_enabled(void)67*5113495bSYour Name bool __qdf_trace_dp_tx_comp_tcp_pkt_enabled(void)
68*5113495bSYour Name {
69*5113495bSYour Name 	return trace_dp_tx_comp_tcp_pkt_enabled();
70*5113495bSYour Name }
71*5113495bSYour Name 
72*5113495bSYour Name /**
73*5113495bSYour Name  * __qdf_trace_dp_tx_comp_tcp_pkt() - Trace tcp packet in tx completion
74*5113495bSYour Name  * @skb: pointer to network buffer
75*5113495bSYour Name  * @tcp_seq_num: TCP sequence number
76*5113495bSYour Name  * @tcp_ack_num: TCP acknowlegment number
77*5113495bSYour Name  * @srcport: TCP source port
78*5113495bSYour Name  * @dstport: TCP destination port
79*5113495bSYour Name  * @latency: latency
80*5113495bSYour Name  *
81*5113495bSYour Name  * Return: None
82*5113495bSYour Name  */
83*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_tcp_pkt(struct sk_buff * skb,uint32_t tcp_seq_num,uint32_t tcp_ack_num,uint16_t srcport,uint16_t dstport,uint64_t latency)84*5113495bSYour Name void __qdf_trace_dp_tx_comp_tcp_pkt(struct sk_buff *skb, uint32_t tcp_seq_num,
85*5113495bSYour Name 				    uint32_t tcp_ack_num, uint16_t srcport,
86*5113495bSYour Name 				    uint16_t dstport, uint64_t latency)
87*5113495bSYour Name {
88*5113495bSYour Name 	trace_dp_tx_comp_tcp_pkt(skb, tcp_seq_num, tcp_ack_num, srcport,
89*5113495bSYour Name 				 dstport, latency);
90*5113495bSYour Name }
91*5113495bSYour Name 
92*5113495bSYour Name /**
93*5113495bSYour Name  * __qdf_trace_dp_rx_udp_pkt_enabled() - Get the dp_rx_udp_pkt tracepoint
94*5113495bSYour Name  *  enabled or disabled state
95*5113495bSYour Name  *
96*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
97*5113495bSYour Name  */
98*5113495bSYour Name static inline
__qdf_trace_dp_rx_udp_pkt_enabled(void)99*5113495bSYour Name bool __qdf_trace_dp_rx_udp_pkt_enabled(void)
100*5113495bSYour Name {
101*5113495bSYour Name 	return trace_dp_rx_udp_pkt_enabled();
102*5113495bSYour Name }
103*5113495bSYour Name 
104*5113495bSYour Name /**
105*5113495bSYour Name  * __qdf_trace_dp_rx_udp_pkt() - Trace udp packet in rx direction
106*5113495bSYour Name  * @skb: pointer to network buffer
107*5113495bSYour Name  * @ip_id: ip identification field
108*5113495bSYour Name  * @srcport: UDP source port
109*5113495bSYour Name  * @dstport: UDP destination port
110*5113495bSYour Name  * @latency: latency
111*5113495bSYour Name  *
112*5113495bSYour Name  * Return: None
113*5113495bSYour Name  */
114*5113495bSYour Name static inline
__qdf_trace_dp_rx_udp_pkt(struct sk_buff * skb,uint16_t ip_id,uint16_t srcport,uint16_t dstport,uint64_t latency)115*5113495bSYour Name void __qdf_trace_dp_rx_udp_pkt(struct sk_buff *skb, uint16_t ip_id,
116*5113495bSYour Name 			       uint16_t srcport, uint16_t dstport,
117*5113495bSYour Name 			       uint64_t latency)
118*5113495bSYour Name {
119*5113495bSYour Name 	trace_dp_rx_udp_pkt(skb, ip_id, srcport, dstport, latency);
120*5113495bSYour Name }
121*5113495bSYour Name 
122*5113495bSYour Name /**
123*5113495bSYour Name  * __qdf_trace_dp_tx_comp_udp_pkt_enabled() - Get the dp_tx_comp_udp_pkt
124*5113495bSYour Name  *  tracepoint enabled or disabled state
125*5113495bSYour Name  *
126*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
127*5113495bSYour Name  */
128*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_udp_pkt_enabled(void)129*5113495bSYour Name bool __qdf_trace_dp_tx_comp_udp_pkt_enabled(void)
130*5113495bSYour Name {
131*5113495bSYour Name 	return trace_dp_tx_comp_udp_pkt_enabled();
132*5113495bSYour Name }
133*5113495bSYour Name 
134*5113495bSYour Name /**
135*5113495bSYour Name  * __qdf_trace_dp_tx_comp_udp_pkt() - Trace udp packet in tx completion
136*5113495bSYour Name  * @skb: pointer to network buffer
137*5113495bSYour Name  * @ip_id: ip identification field
138*5113495bSYour Name  * @srcport: UDP source port
139*5113495bSYour Name  * @dstport: UDP destination port
140*5113495bSYour Name  * @latency: latency
141*5113495bSYour Name  *
142*5113495bSYour Name  * Return: None
143*5113495bSYour Name  */
144*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_udp_pkt(struct sk_buff * skb,uint16_t ip_id,uint16_t srcport,uint16_t dstport,uint64_t latency)145*5113495bSYour Name void __qdf_trace_dp_tx_comp_udp_pkt(struct sk_buff *skb, uint16_t ip_id,
146*5113495bSYour Name 				    uint16_t srcport, uint16_t dstport,
147*5113495bSYour Name 				    uint64_t latency)
148*5113495bSYour Name {
149*5113495bSYour Name 	trace_dp_tx_comp_udp_pkt(skb, ip_id, srcport, dstport, latency);
150*5113495bSYour Name }
151*5113495bSYour Name 
152*5113495bSYour Name /**
153*5113495bSYour Name  * __qdf_trace_dp_rx_generic_ip_pkt_enabled() - Get the dp_rx_generic_ip_pkt
154*5113495bSYour Name  *					tracepoint enabled or disabled state
155*5113495bSYour Name  *
156*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
157*5113495bSYour Name  */
158*5113495bSYour Name static inline
__qdf_trace_dp_rx_generic_ip_pkt_enabled(void)159*5113495bSYour Name bool __qdf_trace_dp_rx_generic_ip_pkt_enabled(void)
160*5113495bSYour Name {
161*5113495bSYour Name 	return trace_dp_rx_generic_ip_pkt_enabled();
162*5113495bSYour Name }
163*5113495bSYour Name 
164*5113495bSYour Name /**
165*5113495bSYour Name  * __qdf_trace_dp_rx_generic_ip_pkt() - Trace generic ip packet in rx direction
166*5113495bSYour Name  * @skb: pointer to network buffer
167*5113495bSYour Name  * @ip_proto: ip protocol type
168*5113495bSYour Name  * @ip_id: ip identification field
169*5113495bSYour Name  * @trans_hdr_4_bytes: transport header first 4 bytes
170*5113495bSYour Name  * @latency: latency
171*5113495bSYour Name  *
172*5113495bSYour Name  * Return: None
173*5113495bSYour Name  */
174*5113495bSYour Name static inline
__qdf_trace_dp_rx_generic_ip_pkt(struct sk_buff * skb,uint8_t ip_proto,uint16_t ip_id,uint32_t trans_hdr_4_bytes,uint64_t latency)175*5113495bSYour Name void __qdf_trace_dp_rx_generic_ip_pkt(struct sk_buff *skb, uint8_t ip_proto,
176*5113495bSYour Name 				      uint16_t ip_id, uint32_t trans_hdr_4_bytes,
177*5113495bSYour Name 				      uint64_t latency)
178*5113495bSYour Name {
179*5113495bSYour Name 	trace_dp_rx_generic_ip_pkt(skb, ip_proto, ip_id,
180*5113495bSYour Name 				   trans_hdr_4_bytes,
181*5113495bSYour Name 				   latency);
182*5113495bSYour Name }
183*5113495bSYour Name 
184*5113495bSYour Name /**
185*5113495bSYour Name  * __qdf_trace_dp_tx_comp_generic_ip_pkt_enabled() - Get the dp_tx_comp_generic_ip_pkt
186*5113495bSYour Name  *						tracepoint enabled or disabled state
187*5113495bSYour Name  *
188*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
189*5113495bSYour Name  */
190*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_generic_ip_pkt_enabled(void)191*5113495bSYour Name bool __qdf_trace_dp_tx_comp_generic_ip_pkt_enabled(void)
192*5113495bSYour Name {
193*5113495bSYour Name 	return trace_dp_tx_comp_generic_ip_pkt_enabled();
194*5113495bSYour Name }
195*5113495bSYour Name 
196*5113495bSYour Name /**
197*5113495bSYour Name  * __qdf_trace_dp_tx_comp_generic_ip_pkt() - Trace generic ip packet in
198*5113495bSYour Name  *					     tx direction
199*5113495bSYour Name  * @skb: pointer to network buffer
200*5113495bSYour Name  * @ip_proto: IP protocol field
201*5113495bSYour Name  * @ip_id: ip identification field
202*5113495bSYour Name  * @trans_hdr_4_bytes: transport header first 4 bytes
203*5113495bSYour Name  * @latency: latency
204*5113495bSYour Name  *
205*5113495bSYour Name  * Return: None
206*5113495bSYour Name  */
207*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_generic_ip_pkt(struct sk_buff * skb,uint8_t ip_proto,uint16_t ip_id,uint32_t trans_hdr_4_bytes,uint64_t latency)208*5113495bSYour Name void __qdf_trace_dp_tx_comp_generic_ip_pkt(struct sk_buff *skb,
209*5113495bSYour Name 					   uint8_t ip_proto,
210*5113495bSYour Name 					   uint16_t ip_id,
211*5113495bSYour Name 					   uint32_t trans_hdr_4_bytes,
212*5113495bSYour Name 					   uint64_t latency)
213*5113495bSYour Name {
214*5113495bSYour Name 	trace_dp_tx_comp_generic_ip_pkt(skb, ip_proto, ip_id,
215*5113495bSYour Name 					trans_hdr_4_bytes,
216*5113495bSYour Name 					latency);
217*5113495bSYour Name }
218*5113495bSYour Name 
219*5113495bSYour Name /**
220*5113495bSYour Name  * __qdf_trace_dp_rx_pkt_enabled() - Get the dp_rx_pkt tracepoint
221*5113495bSYour Name  *  enabled or disabled state
222*5113495bSYour Name  *
223*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
224*5113495bSYour Name  */
225*5113495bSYour Name static inline
__qdf_trace_dp_rx_pkt_enabled(void)226*5113495bSYour Name bool __qdf_trace_dp_rx_pkt_enabled(void)
227*5113495bSYour Name {
228*5113495bSYour Name 	return trace_dp_rx_pkt_enabled();
229*5113495bSYour Name }
230*5113495bSYour Name 
231*5113495bSYour Name /**
232*5113495bSYour Name  * __qdf_trace_dp_rx_pkt() - Trace non-tcp/udp packet in rx direction
233*5113495bSYour Name  * @skb: pointer to network buffer
234*5113495bSYour Name  * @ether_type: type in ethernet header
235*5113495bSYour Name  * @latency: latency
236*5113495bSYour Name  *
237*5113495bSYour Name  * Return: None
238*5113495bSYour Name  */
239*5113495bSYour Name static inline
__qdf_trace_dp_rx_pkt(struct sk_buff * skb,uint16_t ether_type,uint64_t latency)240*5113495bSYour Name void __qdf_trace_dp_rx_pkt(struct sk_buff *skb, uint16_t ether_type,
241*5113495bSYour Name 			   uint64_t latency)
242*5113495bSYour Name {
243*5113495bSYour Name 	trace_dp_rx_pkt(skb, ether_type, latency);
244*5113495bSYour Name }
245*5113495bSYour Name 
246*5113495bSYour Name /**
247*5113495bSYour Name  * __qdf_trace_dp_tx_comp_pkt_enabled() - Get the dp_tx_comp_pkt tracepoint
248*5113495bSYour Name  *  enabled or disabled state
249*5113495bSYour Name  *
250*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
251*5113495bSYour Name  */
252*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_pkt_enabled(void)253*5113495bSYour Name bool __qdf_trace_dp_tx_comp_pkt_enabled(void)
254*5113495bSYour Name {
255*5113495bSYour Name 	return trace_dp_tx_comp_pkt_enabled();
256*5113495bSYour Name }
257*5113495bSYour Name 
258*5113495bSYour Name /**
259*5113495bSYour Name  * __qdf_trace_dp_tx_comp_pkt() - Trace non-tcp/udp packet in rx direction
260*5113495bSYour Name  * @skb: pointer to network buffer
261*5113495bSYour Name  * @ether_type: type in ethernet header
262*5113495bSYour Name  * @latency: latency
263*5113495bSYour Name  *
264*5113495bSYour Name  * Return: None
265*5113495bSYour Name  */
266*5113495bSYour Name static inline
__qdf_trace_dp_tx_comp_pkt(struct sk_buff * skb,uint16_t ether_type,uint64_t latency)267*5113495bSYour Name void __qdf_trace_dp_tx_comp_pkt(struct sk_buff *skb, uint16_t ether_type,
268*5113495bSYour Name 				uint64_t latency)
269*5113495bSYour Name {
270*5113495bSYour Name 	trace_dp_tx_comp_pkt(skb, ether_type, latency);
271*5113495bSYour Name }
272*5113495bSYour Name 
273*5113495bSYour Name /**
274*5113495bSYour Name  * __qdf_trace_dp_del_reg_write_enabled() - Get the dp_del_reg_write tracepoint
275*5113495bSYour Name  *  enabled or disabled state
276*5113495bSYour Name  *
277*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
278*5113495bSYour Name  */
279*5113495bSYour Name static inline
__qdf_trace_dp_del_reg_write_enabled(void)280*5113495bSYour Name bool __qdf_trace_dp_del_reg_write_enabled(void)
281*5113495bSYour Name {
282*5113495bSYour Name 	return trace_dp_del_reg_write_enabled();
283*5113495bSYour Name }
284*5113495bSYour Name 
285*5113495bSYour Name /**
286*5113495bSYour Name  * __qdf_trace_dp_del_reg_write() - Trace delayed register writes
287*5113495bSYour Name  * @srng_id: srng id
288*5113495bSYour Name  * @enq_val: enqueue value
289*5113495bSYour Name  * @deq_val: dequeue value
290*5113495bSYour Name  * @enq_time: enqueue time
291*5113495bSYour Name  * @deq_time: dequeue time
292*5113495bSYour Name  *
293*5113495bSYour Name  * Return: None
294*5113495bSYour Name  */
295*5113495bSYour Name static inline
__qdf_trace_dp_del_reg_write(uint8_t srng_id,uint32_t enq_val,uint32_t deq_val,uint64_t enq_time,uint64_t deq_time)296*5113495bSYour Name void __qdf_trace_dp_del_reg_write(uint8_t srng_id, uint32_t enq_val,
297*5113495bSYour Name 				  uint32_t deq_val, uint64_t enq_time,
298*5113495bSYour Name 				  uint64_t deq_time)
299*5113495bSYour Name {
300*5113495bSYour Name 	trace_dp_del_reg_write(srng_id, enq_val, deq_val, enq_time,
301*5113495bSYour Name 			       deq_time);
302*5113495bSYour Name }
303*5113495bSYour Name 
304*5113495bSYour Name /**
305*5113495bSYour Name  * __qdf_trace_dp_ce_tasklet_sched_latency_enabled() - Get the
306*5113495bSYour Name  *  dp_ce_tasklet_sched_lat tracepoint enabled or disabled state
307*5113495bSYour Name  *
308*5113495bSYour Name  * Return: True if the tracepoint is enabled else false
309*5113495bSYour Name  */
310*5113495bSYour Name static inline
__qdf_trace_dp_ce_tasklet_sched_latency_enabled(void)311*5113495bSYour Name bool __qdf_trace_dp_ce_tasklet_sched_latency_enabled(void)
312*5113495bSYour Name {
313*5113495bSYour Name 	return trace_dp_ce_tasklet_sched_latency_enabled();
314*5113495bSYour Name }
315*5113495bSYour Name 
316*5113495bSYour Name /**
317*5113495bSYour Name  * __qdf_trace_dp_ce_tasklet_sched_latency() - Trace ce tasklet scheduling
318*5113495bSYour Name  *  latency
319*5113495bSYour Name  * @ce_id: ce id
320*5113495bSYour Name  * @sched_latency: ce tasklet sched latency
321*5113495bSYour Name  *
322*5113495bSYour Name  * Return: None
323*5113495bSYour Name  */
324*5113495bSYour Name static inline void
__qdf_trace_dp_ce_tasklet_sched_latency(uint8_t ce_id,uint64_t sched_latency)325*5113495bSYour Name __qdf_trace_dp_ce_tasklet_sched_latency(uint8_t ce_id, uint64_t sched_latency)
326*5113495bSYour Name {
327*5113495bSYour Name 	trace_dp_ce_tasklet_sched_latency(ce_id, sched_latency);
328*5113495bSYour Name }
329*5113495bSYour Name #endif /* _I_QDF_TRACEPOINT_H */
330