aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/nat/bsc_nat_utils.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-06-17 18:16:00 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-06-17 18:18:12 +0800
commitb2c38ebb1f2e9f670b3a59caca9e6195277b62be (patch)
tree03fb94bdb12e550b46ec92343212a7fc823282d0 /openbsc/src/nat/bsc_nat_utils.c
parentf6d0e06940d6430ef58ecd095702e8d1d323d605 (diff)
nat: Switch per BSC counters to the rate ctr.
This is switching the simple statistics to the rate counter and is updating all users...
Diffstat (limited to 'openbsc/src/nat/bsc_nat_utils.c')
-rw-r--r--openbsc/src/nat/bsc_nat_utils.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c
index eed7f3a55..d21185361 100644
--- a/openbsc/src/nat/bsc_nat_utils.c
+++ b/openbsc/src/nat/bsc_nat_utils.c
@@ -38,6 +38,20 @@
#include <netinet/in.h>
#include <arpa/inet.h>
+
+static const struct rate_ctr_desc bsc_cfg_ctr_description[] = {
+ [BCFG_CTR_SCCP_CONN] = { "sccp.conn", "SCCP Connections" },
+ [BCFG_CTR_SCCP_CALLS] = { "sccp.calls", "SCCP Assignment Commands"},
+ [BCFG_CTR_NET_RECONN] = { "net.reconnects", "Network reconnects"},
+};
+
+static const struct rate_ctr_group_desc bsc_cfg_ctrg_desc = {
+ .group_name_prefix = "nat.bsc",
+ .group_description = "NAT BSC Statistics",
+ .num_ctr = ARRAY_SIZE(bsc_cfg_ctr_description),
+ .ctr_desc = bsc_cfg_ctr_description,
+};
+
struct bsc_nat *bsc_nat_alloc(void)
{
struct bsc_nat *nat = talloc_zero(tall_bsc_ctx, struct bsc_nat);
@@ -94,9 +108,11 @@ struct bsc_config *bsc_config_alloc(struct bsc_nat *nat, const char *token, unsi
llist_add_tail(&conf->entry, &nat->bsc_configs);
++nat->num_bsc;
- conf->stats.sccp.conn = counter_alloc("nat.bsc.sccp.conn");
- conf->stats.sccp.calls = counter_alloc("nat.bsc.sccp.calls");
- conf->stats.net.reconn = counter_alloc("nat.bsc.net.reconnects");
+ conf->stats.ctrg = rate_ctr_group_alloc(conf, &bsc_cfg_ctrg_desc, conf->lac);
+ if (!conf->stats.ctrg) {
+ talloc_free(conf);
+ return NULL;
+ }
return conf;
}
@@ -489,4 +505,4 @@ struct bsc_nat_acc_lst_entry *bsc_nat_acc_lst_entry_create(struct bsc_nat_acc_ls
llist_add_tail(&entry->list, &lst->fltr_list);
return entry;
-} \ No newline at end of file
+}