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