File Index
Files and directories
Sign in
FILE

stats.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ovpn/stats.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*  OpenVPN data channel offload
 3 *
 4 *  Copyright (C) 2020-2025 OpenVPN, Inc.
 5 *
 6 *  Author:	James Yonan <james@openvpn.net>
 7 *		Antonio Quartulli <antonio@openvpn.net>
 8 *		Lev Stipakov <lev@openvpn.net>
 9 */
10
11#ifndef _NET_OVPN_OVPNSTATS_H_
12#define _NET_OVPN_OVPNSTATS_H_
13
14/* one stat */
15struct ovpn_peer_stat {
16	atomic64_t bytes;
17	atomic64_t packets;
18};
19
20/* rx and tx stats combined */
21struct ovpn_peer_stats {
22	struct ovpn_peer_stat rx;
23	struct ovpn_peer_stat tx;
24};
25
26void ovpn_peer_stats_init(struct ovpn_peer_stats *ps);
27
28static inline void ovpn_peer_stats_increment(struct ovpn_peer_stat *stat,
29					     const unsigned int n)
30{
31	atomic64_add(n, &stat->bytes);
32	atomic64_inc(&stat->packets);
33}
34
35static inline void ovpn_peer_stats_increment_rx(struct ovpn_peer_stats *stats,
36						const unsigned int n)
37{
38	ovpn_peer_stats_increment(&stats->rx, n);
39}
40
41static inline void ovpn_peer_stats_increment_tx(struct ovpn_peer_stats *stats,
42						const unsigned int n)
43{
44	ovpn_peer_stats_increment(&stats->tx, n);
45}
46
47#endif /* _NET_OVPN_OVPNSTATS_H_ */
~/ Read-only file preview.