lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42758?usp=email )
Change subject: tcap loadshare: Add session miss counter ......................................................................
tcap loadshare: Add session miss counter
When a non-starting TCAP message (Continue, End, Abort) is received and no session can be associated with it, count these as session miss.
Those should not appear under normal operation, except after a restart of osmo-stp.
Related: SYS#5432 Change-Id: I23319294e899e6acb6421d89675ce456048f7475 --- M src/ss7_as.c M src/ss7_as.h M src/tcap_as_loadshare.c 3 files changed, 5 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved
diff --git a/src/ss7_as.c b/src/ss7_as.c index c73ca35..8cddae9 100644 --- a/src/ss7_as.c +++ b/src/ss7_as.c @@ -137,6 +137,7 @@ [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)" }, + [SS7_AS_CTR_TCAP_ASP_MISS] = { "tcap:session:miss", "A non-starting TCAP message (Continue, End, Abort) was missing a session entry, but routed successful. (loadshare-tcap)" }, #endif /* WITH_TCAP_LOADSHARING */ };
diff --git a/src/ss7_as.h b/src/ss7_as.h index 793cb26..e67ca1b 100644 --- a/src/ss7_as.h +++ b/src/ss7_as.h @@ -71,6 +71,7 @@ SS7_AS_CTR_TCAP_ASP_SELECTED, SS7_AS_CTR_TCAP_ASP_FALLBACK, SS7_AS_CTR_TCAP_ASP_FAILED, + SS7_AS_CTR_TCAP_ASP_MISS, #endif /* WITH_TCAP_LOADSHARING */ };
diff --git a/src/tcap_as_loadshare.c b/src/tcap_as_loadshare.c index 1a5d0ff..a6b71d2 100644 --- a/src/tcap_as_loadshare.c +++ b/src/tcap_as_loadshare.c @@ -544,6 +544,7 @@ asp = tcap_trans_track_continue(as, &called_addr, &parsed.dtid, &calling_addr, &parsed.otid); if (!asp) { LOGPAS(as, DLTCAP, LOGL_INFO, "Couldn't find cached ASP for TCAP Continue, dtid %u/otid %u, using tcap route", parsed.dtid, parsed.otid); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_TCAP_ASP_MISS); asp = tcap_as_asp_find_by_tcap_id(as, &calling_addr, &called_addr, parsed.dtid); if (asp) tcap_trans_track_entry_create(as, asp, &called_addr, &parsed.dtid, &calling_addr, &parsed.otid); @@ -561,7 +562,9 @@ asp = tcap_trans_track_end(as, &called_addr, &parsed.dtid, &calling_addr, NULL); if (!asp) { LOGPAS(as, DLTCAP, LOGL_INFO, "Couldn't find cached ASP for TCAP End, dtid %u, using tcap route", parsed.dtid); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_TCAP_ASP_MISS); asp = tcap_as_asp_find_by_tcap_id(as, &calling_addr, &called_addr, parsed.dtid); + /* Don't create an entry for an End */ } rc = asp ? 0 : -ENOKEY; break;