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;

--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/41310?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Id67704991feacf54e3123f76e9506dd323b2498b
Gerrit-Change-Number: 41310
Gerrit-PatchSet: 19
Gerrit-Owner: lynxis lazus <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-CC: laforge <[email protected]>
Gerrit-CC: osmith <[email protected]>

Reply via email to