daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/41310?usp=email )
Change subject: Add rate counters for loadshare-tcap ......................................................................
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(-)
Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified
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;