pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve
Add per ss7 instance rate_ctr_group

Change-Id: Id916307c2465daab3072f850774240969fae3f6e
---
M src/ss7_asp.c
M src/ss7_instance.c
M src/ss7_instance.h
3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/src/ss7_asp.c b/src/ss7_asp.c
index f3476ea..976e54a 100644
--- a/src/ss7_asp.c
+++ b/src/ss7_asp.c
@@ -1051,6 +1051,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = ipa_rx_msg(asp, msg, asp->ipa.sls);
msgb_free(msg);
@@ -1131,6 +1132,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = xua_rx_msg(asp, msg);
msgb_free(msg);
@@ -1176,6 +1178,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = m3ua_tcp_rx_msg(asp, msg);
msgb_free(msg);
@@ -1266,6 +1269,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = ipa_rx_msg(asp, msg, asp->ipa.sls);
msgb_free(msg);
@@ -1287,6 +1291,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = m3ua_tcp_rx_msg(asp, msg);
out:
@@ -1331,6 +1336,7 @@
}

msg->dst = asp;
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_TOTAL);
rc = xua_rx_msg(asp, msg);
out:
@@ -1390,6 +1396,7 @@
OSMO_ASSERT(0);
}

+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_TX_TOTAL);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_TX_TOTAL);
LOGPASP(asp, DLSS7, LOGL_DEBUG, "Tx %d bytes: %s\n", msg->len, msgb_hexdump(msg));

@@ -1438,6 +1445,7 @@

int ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg)
{
+ rate_ctr_inc2(asp->inst->ctrg, SS7_INST_CTR_PKT_RX_UNKNOWN);
rate_ctr_inc2(asp->ctrg, SS7_ASP_CTR_PKT_RX_UNKNOWN);

if (g_osmo_ss7_asp_rx_unknown_cb)
diff --git a/src/ss7_instance.c b/src/ss7_instance.c
index a4cbe1e..0527e5c 100644
--- a/src/ss7_instance.c
+++ b/src/ss7_instance.c
@@ -49,6 +49,19 @@
.component_len = { 3, 8, 3},
};

+static const struct rate_ctr_desc ss7_inst_rcd[] = {
+ [SS7_INST_CTR_PKT_RX_TOTAL] = { "rx:packets:total", "Total number of packets received" },
+ [SS7_INST_CTR_PKT_RX_UNKNOWN] = { "rx:packets:unknown", "Number of packets received for unknown PPID" },
+ [SS7_INST_CTR_PKT_TX_TOTAL] = { "tx:packets:total", "Total number of packets transmitted" },
+};
+
+static const struct rate_ctr_group_desc ss7_inst_rcgd = {
+ .group_name_prefix = "s7i",
+ .group_description = "SS7 Instance",
+ .num_ctr = ARRAY_SIZE(ss7_inst_rcd),
+ .ctr_desc = ss7_inst_rcd,
+};
+
struct osmo_ss7_instance *
ss7_instance_alloc(void *ctx, uint32_t id)
{
@@ -64,11 +77,18 @@
inst->cfg.id = id;
LOGSS7(inst, LOGL_INFO, "Creating SS7 Instance\n");

+ INIT_LLIST_HEAD(&inst->cfg.sccp_address_book);
INIT_LLIST_HEAD(&inst->linksets);
INIT_LLIST_HEAD(&inst->as_list);
INIT_LLIST_HEAD(&inst->asp_list);
INIT_LLIST_HEAD(&inst->rtable_list);
INIT_LLIST_HEAD(&inst->xua_servers);
+
+ inst->ctrg = rate_ctr_group_alloc(inst, &ss7_inst_rcgd, id);
+ if (!inst->ctrg) {
+ talloc_free(inst);
+ return NULL;
+ }
inst->rtable_system = ss7_route_table_find_or_create(inst, "system");

/* default point code structure + formatting */
@@ -79,8 +99,6 @@

llist_add_tail(&inst->list, &osmo_ss7_instances);

- INIT_LLIST_HEAD(&inst->cfg.sccp_address_book);
-
return inst;
}

@@ -105,6 +123,7 @@
llist_for_each_entry_safe(lset, lset2, &inst->linksets, list)
ss7_linkset_destroy(lset);

+ rate_ctr_group_free(inst->ctrg);
llist_del(&inst->list);
talloc_free(inst);
}
diff --git a/src/ss7_instance.h b/src/ss7_instance.h
index e7e25ef..5537b6b 100644
--- a/src/ss7_instance.h
+++ b/src/ss7_instance.h
@@ -3,6 +3,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/rate_ctr.h>

#include <osmocom/sigtran/protocol/mtp.h>

@@ -15,6 +16,12 @@
struct osmo_ss7_route_label;
struct osmo_sccp_instance;

+enum ss7_instance_ctr {
+ SS7_INST_CTR_PKT_RX_TOTAL,
+ SS7_INST_CTR_PKT_RX_UNKNOWN,
+ SS7_INST_CTR_PKT_TX_TOTAL,
+};
+
struct osmo_ss7_pc_fmt {
char delimiter;
uint8_t component_len[3];
@@ -41,6 +48,8 @@

struct osmo_sccp_instance *sccp;

+ struct rate_ctr_group *ctrg;
+
struct {
uint32_t id;
char *name;

To view, visit change 41407. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Id916307c2465daab3072f850774240969fae3f6e
Gerrit-Change-Number: 41407
Gerrit-PatchSet: 5
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>