From 26a9539e18295dcd84597cacbd736652075426e2 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Tue, 14 Jul 2020 18:04:18 +0200 Subject: [PATCH] rate_ctr: Add functions to reset rate counter (groups) Change-Id: If2f806d044cd0fb6929dac44ef8f8a15941ffe9b Related: SYS#4877 --- TODO-RELEASE | 1 + include/osmocom/core/rate_ctr.h | 3 +++ src/rate_ctr.c | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/TODO-RELEASE b/TODO-RELEASE index e2fd8306c..369668193 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -15,3 +15,4 @@ gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() gsm API/ABI change add new member to lapd_datalink gsm new API new gsm0808_create_common_id() gb new API new bssgp_tx_bvc_reset2() +core new API new rate_ctr_reset(), rate_ctr_group_reset() diff --git a/include/osmocom/core/rate_ctr.h b/include/osmocom/core/rate_ctr.h index f7e6e225b..1669ce498 100644 --- a/include/osmocom/core/rate_ctr.h +++ b/include/osmocom/core/rate_ctr.h @@ -116,4 +116,7 @@ int rate_ctr_for_each_counter(struct rate_ctr_group *ctrg, int rate_ctr_for_each_group(rate_ctr_group_handler_t handle_group, void *data); +void rate_ctr_reset(struct rate_ctr *ctr); +void rate_ctr_group_reset(struct rate_ctr_group *ctrg); + /*! @} */ diff --git a/src/rate_ctr.c b/src/rate_ctr.c index 026670bd3..9043a2c6f 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -426,4 +426,25 @@ int rate_ctr_for_each_group(rate_ctr_group_handler_t handle_group, void *data) return rc; } +/*! Reset a rate counter back to zero + * \param[in] ctr counter to reset + */ +void rate_ctr_reset(struct rate_ctr *ctr) +{ + memset(ctr, 0, sizeof(*ctr)); +} + +/*! Reset all counters in a group + * \param[in] ctrg counter group to reset + */ +void rate_ctr_group_reset(struct rate_ctr_group *ctrg) +{ + int i; + + for (i = 0; i < ctrg->desc->num_ctr; i++) { + struct rate_ctr *ctr = &ctrg->ctr[i]; + rate_ctr_reset(ctr); + } +} + /*! @} */