summaryrefslogtreecommitdiffstats
path: root/lib/util/stats.h
blob: 9ee0cad972ce11c2c03732a8f2641c9263bf7962 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef __STATS_H
#define __STATS_H

#include <bpf/libbpf.h>

#include "xdp/xdp_stats_kern_user.h"

struct record {
	__u64 timestamp;
	bool enabled;
	struct xdp_stats_record total; /* defined in common_kern_user.h */
};

struct stats_record {
	struct record stats[XDP_ACTION_MAX];
};

int stats_print_one(struct stats_record *stats_rec);
int stats_print(struct stats_record *stats_rec,
		struct stats_record *stats_prev);
int stats_collect(int map_fd, __u32 map_type, struct stats_record *stats_rec);
int stats_poll(int map_fd, int interval, bool *exit, const char *pin_dir, const char *map_name);

#endif