Pau Espin Pedrol | 4456b6f | 2019-05-24 16:54:19 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | |
Pau Espin Pedrol | 6a305fe | 2019-05-24 19:58:20 +0200 | [diff] [blame] | 3 | #include <osmocom/core/rate_ctr.h> |
| 4 | #include <osmocom/vty/command.h> |
| 5 | |
| 6 | enum TrxCtr { |
Pau Espin Pedrol | 6a3a2b8 | 2020-06-29 13:52:26 +0200 | [diff] [blame] | 7 | 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 Pedrol | 92ba59d | 2020-06-29 14:34:59 +0200 | [diff] [blame] | 13 | TRX_CTR_TRX_TX_STALE_BURSTS, |
Pau Espin Pedrol | 1d0c6fe | 2020-07-09 18:09:10 +0200 | [diff] [blame] | 14 | TRX_CTR_TRX_TX_UNAVAILABLE_BURSTS, |
Pau Espin Pedrol | c0d6fd2 | 2020-07-09 16:51:47 +0200 | [diff] [blame] | 15 | TRX_CTR_TRX_TRXD_FN_REPEATED, |
| 16 | TRX_CTR_TRX_TRXD_FN_OUTOFORDER, |
| 17 | TRX_CTR_TRX_TRXD_FN_SKIPPED, |
Pau Espin Pedrol | 1d165a0 | 2020-07-27 11:52:42 +0200 | [diff] [blame] | 18 | TRX_CTR_TRX_RX_EMPTY_BURST, |
| 19 | TRX_CTR_TRX_RX_CLIPPING, |
| 20 | TRX_CTR_TRX_RX_NO_BURST_DETECTED, |
Pau Espin Pedrol | 6a305fe | 2019-05-24 19:58:20 +0200 | [diff] [blame] | 21 | }; |
| 22 | |
| 23 | struct 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 | |
| 31 | extern const struct value_string rate_ctr_intv[]; |
| 32 | extern const struct value_string trx_chan_ctr_names[]; |
| 33 | |
Pau Espin Pedrol | 4456b6f | 2019-05-24 16:54:19 +0200 | [diff] [blame] | 34 | struct trx_ctx; |
| 35 | void trx_rate_ctr_init(void *ctx, struct trx_ctx* trx_ctx); |
Pau Espin Pedrol | 6a305fe | 2019-05-24 19:58:20 +0200 | [diff] [blame] | 36 | void trx_rate_ctr_threshold_add(struct ctr_threshold *ctr); |
| 37 | int trx_rate_ctr_threshold_del(struct ctr_threshold *del_ctr); |
| 38 | void trx_rate_ctr_threshold_write_config(struct vty *vty, char *indent_prefix); |