blob: 72125c27aa460d486f1d1a18aa214140207df72b [file] [log] [blame]
Pau Espin Pedrol4456b6f2019-05-24 16:54:19 +02001#pragma once
2
Pau Espin Pedrol6a305fe2019-05-24 19:58:20 +02003#include <osmocom/core/rate_ctr.h>
4#include <osmocom/vty/command.h>
5
6enum TrxCtr {
Pau Espin Pedrol6a3a2b82020-06-29 13:52:26 +02007 TRX_CTR_DEV_RX_OVERRUNS,
8 TRX_CTR_DEV_TX_UNDERRUNS,
9 TRX_CTR_DEV_RX_DROP_EV,
10 TRX_CTR_DEV_RX_DROP_SMPL,
11 TRX_CTR_DEV_TX_DROP_EV,
12 TRX_CTR_DEV_TX_DROP_SMPL,
Pau Espin Pedrol92ba59d2020-06-29 14:34:59 +020013 TRX_CTR_TRX_TX_STALE_BURSTS,
Pau Espin Pedrol1d0c6fe2020-07-09 18:09:10 +020014 TRX_CTR_TRX_TX_UNAVAILABLE_BURSTS,
Pau Espin Pedrolc0d6fd22020-07-09 16:51:47 +020015 TRX_CTR_TRX_TRXD_FN_REPEATED,
16 TRX_CTR_TRX_TRXD_FN_OUTOFORDER,
17 TRX_CTR_TRX_TRXD_FN_SKIPPED,
Pau Espin Pedrol1d165a02020-07-27 11:52:42 +020018 TRX_CTR_TRX_RX_EMPTY_BURST,
19 TRX_CTR_TRX_RX_CLIPPING,
20 TRX_CTR_TRX_RX_NO_BURST_DETECTED,
Pau Espin Pedrol6a305fe2019-05-24 19:58:20 +020021};
22
23struct ctr_threshold {
24 /*! Linked list of all counter groups in the system */
25 struct llist_head list;
26 enum rate_ctr_intv intv;
27 enum TrxCtr ctr_id;
28 uint32_t val;
29};
30
31extern const struct value_string rate_ctr_intv[];
32extern const struct value_string trx_chan_ctr_names[];
33
Pau Espin Pedrol4456b6f2019-05-24 16:54:19 +020034struct trx_ctx;
35void trx_rate_ctr_init(void *ctx, struct trx_ctx* trx_ctx);
Pau Espin Pedrol6a305fe2019-05-24 19:58:20 +020036void trx_rate_ctr_threshold_add(struct ctr_threshold *ctr);
37int trx_rate_ctr_threshold_del(struct ctr_threshold *del_ctr);
38void trx_rate_ctr_threshold_write_config(struct vty *vty, char *indent_prefix);