0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-23 10:11:53 +00:00
bird/proto/stats/stats.h
2022-07-21 16:54:13 +02:00

51 lines
848 B
C

/*
* BIRD -- Statistics Protocol
*
* (c) 2022 Vojtech Vilimek <vojtech.vilimek@nic.cz>
* (c) 2022 CZ.NIC z.s.p.o.
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
#ifndef _BIRD_STATS_H_
#define _BIRD_STATS_H_
struct stats_channel;
struct stats_config {
struct proto_config c;
};
struct stats_proto {
struct proto p;
struct stats_channel *c;
struct tbf rl_gen;
};
struct stats_channel {
struct channel c;
pool *pool;
u8 max_generation;
u32 *counters;
u32 sum;
timer *timer;
btime settle;
};
struct stats_channel_config {
struct channel_config c;
u8 max_generation;
btime settle;
};
static inline int
get_stats_sum(struct symbol *sym)
{
if (sym->ch_config->channel)
return (int) ((struct stats_channel *) sym->ch_config->channel)->sum;
else
return 0;
}
#endif