daniel submitted this change.
Add rate counters for loadshare-tcap
* Track TCAP decoding success/failure by AS
* Track ASP selection success/failure for loadshare-tcap
Related: SYS#5423
Change-Id: Id67704991feacf54e3123f76e9506dd323b2498b
---
M src/ss7_as.c
M src/ss7_as.h
M src/tcap_as_loadshare.c
3 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/ss7_as.c b/src/ss7_as.c
index 98a9057..808047d 100644
--- a/src/ss7_as.c
+++ b/src/ss7_as.c
@@ -98,6 +98,13 @@
[SS7_AS_CTR_TX_MSU_SLS_13] = { "tx:msu:sls:13", SS7_AS_CTR_TX_MSU_SLS_STR "13" },
[SS7_AS_CTR_TX_MSU_SLS_14] = { "tx:msu:sls:14", SS7_AS_CTR_TX_MSU_SLS_STR "14" },
[SS7_AS_CTR_TX_MSU_SLS_15] = { "tx:msu:sls:15", SS7_AS_CTR_TX_MSU_SLS_STR "15" },
+#ifdef WITH_TCAP_LOADSHARING
+ [SS7_AS_CTR_RX_TCAP_DECODED] = { "tcap:decoded", "Number of TCAP-messages decoded successfully (loadshare-tcap)" },
+ [SS7_AS_CTR_RX_TCAP_FAILED] = { "tcap:failed", "Number of TCAP-messages that failed decoding (loadshare-tcap)" },
+ [SS7_AS_CTR_TCAP_ASP_SELECTED] = { "tcap:asp:selected", "ASP selection successful for a TCAP-message (loadshare-tcap)" },
+ [SS7_AS_CTR_TCAP_ASP_FALLBACK] = { "tcap:asp:fallback", "Fallback ASP selected for a TCAP-message (loadshare-tcap)" },
+ [SS7_AS_CTR_TCAP_ASP_FAILED] = { "tcap:asp:failed", "ASP selection failed for a TCAP-message (loadshare-tcap)" },
+#endif /* WITH_TCAP_LOADSHARING */
};
static const struct rate_ctr_group_desc ss7_as_rcgd = {
diff --git a/src/ss7_as.h b/src/ss7_as.h
index 18210ec..b787a92 100644
--- a/src/ss7_as.h
+++ b/src/ss7_as.h
@@ -63,6 +63,13 @@
SS7_AS_CTR_TX_MSU_SLS_13,
SS7_AS_CTR_TX_MSU_SLS_14,
SS7_AS_CTR_TX_MSU_SLS_15,
+#ifdef WITH_TCAP_LOADSHARING
+ SS7_AS_CTR_RX_TCAP_DECODED,
+ SS7_AS_CTR_RX_TCAP_FAILED,
+ SS7_AS_CTR_TCAP_ASP_SELECTED,
+ SS7_AS_CTR_TCAP_ASP_FALLBACK,
+ SS7_AS_CTR_TCAP_ASP_FAILED,
+#endif /* WITH_TCAP_LOADSHARING */
};
#define NUM_AS_EXT_SLS 128
diff --git a/src/tcap_as_loadshare.c b/src/tcap_as_loadshare.c
index 157685e..dea56f8 100644
--- a/src/tcap_as_loadshare.c
+++ b/src/tcap_as_loadshare.c
@@ -26,6 +26,7 @@
#include <osmocom/core/byteswap.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/logging.h>
+#include <osmocom/core/rate_ctr.h>
#include <osmocom/core/talloc.h>
#include <osmocom/netif/ipa.h>
@@ -511,10 +512,12 @@
LOGPAS(as, DLSS7, LOGL_DEBUG, "TCAP: decoded rc=%d otid=%u dtid=%u\n", rc, parsed.otid, parsed.dtid);
if (rc <= 0) {
+ rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_TCAP_FAILED);
LOGPAS(as, DLSS7, LOGL_ERROR, "TCAP: failed get otid/dtid.\n");
rc = -EINVAL;
goto out_free_sua;
}
+ rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_TCAP_DECODED);
/* TCAP messages towards the IPA nodes */
switch (parsed.present) {
@@ -527,11 +530,16 @@
/* lookup a new ASP */
asp = tcap_as_asp_find_by_tcap_id(as, &calling_addr, &called_addr, parsed.otid);
- /* if no ASP found for this TCAP, try to find a non-tcap-range ASP as fallback*/
- if (!asp) {
+ if (asp) {
+ rate_ctr_inc2(as->ctrg, SS7_AS_CTR_TCAP_ASP_SELECTED);
+ } else {
+ /* if no ASP found for this TCAP, try to find a non-tcap-range ASP as fallback*/
asp = find_asp_no_tcap_range(as);
- if (!asp) {
+ if (asp)
+ rate_ctr_inc2(as->ctrg, SS7_AS_CTR_TCAP_ASP_FALLBACK);
+ else {
/* couldn't find a suitable canditate for OTID */
+ rate_ctr_inc2(as->ctrg, SS7_AS_CTR_TCAP_ASP_FAILED);
LOGPAS(as, DLSS7, LOGL_DEBUG, "TCAP: couldn't find a suitable canditate for otid %u\n", parsed.otid);
rc = -ENOKEY;
goto out_free_sua;
To view, visit change 41310. To unsubscribe, or for help writing mail filters, visit settings.