1 /*
2  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: qdf_net_dev_stats
21  * QCA driver framework (QDF) network interface stats management APIs
22  */
23 
24 #if !defined(__I_QDF_NET_STATS_H)
25 #define __I_QDF_NET_STATS_H
26 
27 /* Include Files */
28 #include <qdf_types.h>
29 #include <qdf_util.h>
30 #include <linux/netdevice.h>
31 
32 /**
33  * __qdf_net_stats_add_rx_pkts() - Add RX pkts in n/w stats
34  * @stats: Network stats instance
35  * @value: Value to be added
36  *
37  * Return: None.
38  */
39 static inline
__qdf_net_stats_add_rx_pkts(struct net_device_stats * stats,uint32_t value)40 void __qdf_net_stats_add_rx_pkts(struct net_device_stats *stats, uint32_t value)
41 {
42 	stats->rx_packets += value;
43 }
44 
45 /**
46  * __qdf_net_stats_get_rx_pkts() - Get RX pkts in net stats
47  * @stats: Network stats instance
48  *
49  * Return: Rx packets received on N/W interface
50  */
51 static inline
__qdf_net_stats_get_rx_pkts(struct net_device_stats * stats)52 unsigned long __qdf_net_stats_get_rx_pkts(struct net_device_stats *stats)
53 {
54 	return stats->rx_packets;
55 }
56 
57 /**
58  * __qdf_net_stats_add_rx_bytes() - Add RX bytes in n/w stats
59  * @stats: Network stats instance
60  * @value: Value to be added
61  *
62  * Return: None.
63  */
64 static inline
__qdf_net_stats_add_rx_bytes(struct net_device_stats * stats,uint32_t value)65 void __qdf_net_stats_add_rx_bytes(struct net_device_stats *stats,
66 				  uint32_t value)
67 {
68 	stats->rx_bytes += value;
69 }
70 
71 /**
72  * __qdf_net_stats_get_rx_bytes() - Get RX bytes in net stats
73  * @stats: Network stats instance
74  *
75  * Return: Rx bytes received on N/W interface
76  */
77 static inline
__qdf_net_stats_get_rx_bytes(struct net_device_stats * stats)78 unsigned long __qdf_net_stats_get_rx_bytes(struct net_device_stats *stats)
79 {
80 	return stats->rx_bytes;
81 }
82 
83 /**
84  * __qdf_net_stats_inc_rx_errors() - inc RX errors n/w stats
85  * @stats: Network stats instance
86  *
87  * Return: None.
88  */
89 static inline
__qdf_net_stats_inc_rx_errors(struct net_device_stats * stats)90 void __qdf_net_stats_inc_rx_errors(struct net_device_stats *stats)
91 {
92 	stats->rx_errors++;
93 }
94 
95 /**
96  * __qdf_net_stats_get_rx_errors() - Get RX errors in net stats
97  * @stats: Network stats instance
98  *
99  * Return: Rx packet errors on N/W interface
100  */
101 static inline
__qdf_net_stats_get_rx_errors(struct net_device_stats * stats)102 unsigned long __qdf_net_stats_get_rx_errors(struct net_device_stats *stats)
103 {
104 	return stats->rx_errors;
105 }
106 
107 /**
108  * __qdf_net_stats_inc_rx_dropped() - inc RX dropped n/w stats
109  * @stats: Network stats instance
110  *
111  * Return: None.
112  */
113 static inline
__qdf_net_stats_inc_rx_dropped(struct net_device_stats * stats)114 void __qdf_net_stats_inc_rx_dropped(struct net_device_stats *stats)
115 {
116 	stats->rx_dropped++;
117 }
118 
119 /**
120  * __qdf_net_stats_get_rx_dropped() - Get RX dropped in net stats
121  * @stats: Network stats instance
122  *
123  * Return: Rx packet dropped on N/W interface
124  */
125 static inline
__qdf_net_stats_get_rx_dropped(struct net_device_stats * stats)126 unsigned long __qdf_net_stats_get_rx_dropped(struct net_device_stats *stats)
127 {
128 	return stats->rx_dropped;
129 }
130 
131 /**
132  * __qdf_net_stats_add_tx_pkts() - Add Tx packets n/w stats
133  * @stats: Network stats instance
134  * @value: Value to be added
135  *
136  * Return: None.
137  */
138 static inline
__qdf_net_stats_add_tx_pkts(struct net_device_stats * stats,uint32_t value)139 void __qdf_net_stats_add_tx_pkts(struct net_device_stats *stats, uint32_t value)
140 {
141 	stats->tx_packets += value;
142 }
143 
144 /**
145  * __qdf_net_stats_get_tx_pkts() - Get Tx packets in net stats
146  * @stats: Network stats instance
147  *
148  * Return: Tx packets transmitted on N/W interface
149  */
150 static inline
__qdf_net_stats_get_tx_pkts(struct net_device_stats * stats)151 unsigned long __qdf_net_stats_get_tx_pkts(struct net_device_stats *stats)
152 {
153 	return stats->tx_packets;
154 }
155 
156 /**
157  * __qdf_net_stats_add_tx_bytes() - Add Tx bytes n/w stats
158  * @stats: Network stats instance
159  * @value: Value to be added
160  *
161  * Return: None.
162  */
163 static inline
__qdf_net_stats_add_tx_bytes(struct net_device_stats * stats,uint32_t value)164 void __qdf_net_stats_add_tx_bytes(struct net_device_stats *stats,
165 				  uint32_t value)
166 {
167 	stats->tx_bytes += value;
168 }
169 
170 /**
171  * __qdf_net_stats_get_tx_bytes() - Get Tx bytes in net stats
172  * @stats: Network stats instance
173  *
174  * Return: Tx bytes transmitted on N/W interface
175  */
176 static inline
__qdf_net_stats_get_tx_bytes(struct net_device_stats * stats)177 unsigned long __qdf_net_stats_get_tx_bytes(struct net_device_stats *stats)
178 {
179 	return stats->tx_bytes;
180 }
181 
182 /**
183  * __qdf_net_stats_inc_tx_errors() - inc Tx errors n/w stats
184  * @stats: Network stats instance
185  *
186  * Return: None.
187  */
188 static inline
__qdf_net_stats_inc_tx_errors(struct net_device_stats * stats)189 void __qdf_net_stats_inc_tx_errors(struct net_device_stats *stats)
190 {
191 	stats->tx_errors++;
192 }
193 
194 /**
195  * __qdf_net_stats_get_tx_errors() - Get Tx errors in net stats
196  * @stats: Network stats instance
197  *
198  * Return: Tx errors on N/W interface
199  */
200 static inline
__qdf_net_stats_get_tx_errors(struct net_device_stats * stats)201 unsigned long __qdf_net_stats_get_tx_errors(struct net_device_stats *stats)
202 {
203 	return stats->tx_errors;
204 }
205 
206 /**
207  * __qdf_net_stats_inc_tx_dropped() - inc Tx dropped n/w stats
208  * @stats: Network stats instance
209  *
210  * Return: None.
211  */
212 static inline
__qdf_net_stats_inc_tx_dropped(struct net_device_stats * stats)213 void __qdf_net_stats_inc_tx_dropped(struct net_device_stats *stats)
214 {
215 	stats->tx_dropped++;
216 }
217 
218 /**
219  * __qdf_net_stats_get_tx_dropped() - Get Tx dropped in net stats
220  * @stats: Network stats instance
221  *
222  * Return: Tx dropped on N/W interface
223  */
224 static inline
__qdf_net_stats_get_tx_dropped(struct net_device_stats * stats)225 unsigned long __qdf_net_stats_get_tx_dropped(struct net_device_stats *stats)
226 {
227 	return stats->tx_dropped;
228 }
229 #endif /*__I_QDF_NET_STATS_H*/
230