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