pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/39406?usp=email )
(
9 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: AS loadsharing: Introduce AS rate_ctr rx:msu:sls:* ......................................................................
AS loadsharing: Introduce AS rate_ctr rx:msu:sls:*
Related: SYS#7112 Change-Id: I695bd3933a116323db45ab7f45dcf539791139aa --- M src/ipa.c M src/m3ua.c M src/osmo_ss7_as.c M src/ss7_as.h M src/sua.c 5 files changed, 43 insertions(+), 2 deletions(-)
Approvals: daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve
diff --git a/src/ipa.c b/src/ipa.c index 6ca5b50..4e0180c 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -238,6 +238,8 @@ }
rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_TOTAL); + OSMO_ASSERT(sls <= 0xf); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_SLS_0 + sls);
/* pull the IPA header */ msgb_pull_to_l2(msg); diff --git a/src/m3ua.c b/src/m3ua.c index 78f1aef..2f180c3 100644 --- a/src/m3ua.c +++ b/src/m3ua.c @@ -617,6 +617,8 @@ "%s(): M3UA data header: opc=%u=%s dpc=%u=%s\n", __func__, xua->mtp.opc, osmo_ss7_pointcode_print(asp->inst, xua->mtp.opc), xua->mtp.dpc, osmo_ss7_pointcode_print2(asp->inst, xua->mtp.dpc)); + OSMO_ASSERT(xua->mtp.sls <= 0xf); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_SLS_0 + xua->mtp.sls);
if (rctx_ie) { /* remove ROUTE_CTX as in the routing case we want to add a new diff --git a/src/osmo_ss7_as.c b/src/osmo_ss7_as.c index 6aadb8f..d50d113 100644 --- a/src/osmo_ss7_as.c +++ b/src/osmo_ss7_as.c @@ -54,9 +54,26 @@ { 0, NULL } };
+#define SS7_AS_CTR_RX_MSU_SLS_STR "Number of MSU received on SLS " static const struct rate_ctr_desc ss7_as_rcd[] = { - [SS7_AS_CTR_RX_MSU_TOTAL] = { "rx:msu:total", "Total number of MSU received" }, - [SS7_AS_CTR_TX_MSU_TOTAL] = { "tx:msu:total", "Total number of MSU transmitted" }, + [SS7_AS_CTR_RX_MSU_TOTAL] = { "rx:msu:total", "Total number of MSU received" }, + [SS7_AS_CTR_RX_MSU_SLS_0] = { "rx:msu:sls:0", SS7_AS_CTR_RX_MSU_SLS_STR "0" }, + [SS7_AS_CTR_RX_MSU_SLS_1] = { "rx:msu:sls:1", SS7_AS_CTR_RX_MSU_SLS_STR "1" }, + [SS7_AS_CTR_RX_MSU_SLS_2] = { "rx:msu:sls:2", SS7_AS_CTR_RX_MSU_SLS_STR "2" }, + [SS7_AS_CTR_RX_MSU_SLS_3] = { "rx:msu:sls:3", SS7_AS_CTR_RX_MSU_SLS_STR "3" }, + [SS7_AS_CTR_RX_MSU_SLS_4] = { "rx:msu:sls:4", SS7_AS_CTR_RX_MSU_SLS_STR "4" }, + [SS7_AS_CTR_RX_MSU_SLS_5] = { "rx:msu:sls:5", SS7_AS_CTR_RX_MSU_SLS_STR "5" }, + [SS7_AS_CTR_RX_MSU_SLS_6] = { "rx:msu:sls:6", SS7_AS_CTR_RX_MSU_SLS_STR "6" }, + [SS7_AS_CTR_RX_MSU_SLS_7] = { "rx:msu:sls:7", SS7_AS_CTR_RX_MSU_SLS_STR "7" }, + [SS7_AS_CTR_RX_MSU_SLS_8] = { "rx:msu:sls:8", SS7_AS_CTR_RX_MSU_SLS_STR "8" }, + [SS7_AS_CTR_RX_MSU_SLS_9] = { "rx:msu:sls:9", SS7_AS_CTR_RX_MSU_SLS_STR "9" }, + [SS7_AS_CTR_RX_MSU_SLS_10] = { "rx:msu:sls:10", SS7_AS_CTR_RX_MSU_SLS_STR "10" }, + [SS7_AS_CTR_RX_MSU_SLS_11] = { "rx:msu:sls:11", SS7_AS_CTR_RX_MSU_SLS_STR "11" }, + [SS7_AS_CTR_RX_MSU_SLS_12] = { "rx:msu:sls:12", SS7_AS_CTR_RX_MSU_SLS_STR "12" }, + [SS7_AS_CTR_RX_MSU_SLS_13] = { "rx:msu:sls:13", SS7_AS_CTR_RX_MSU_SLS_STR "13" }, + [SS7_AS_CTR_RX_MSU_SLS_14] = { "rx:msu:sls:14", SS7_AS_CTR_RX_MSU_SLS_STR "14" }, + [SS7_AS_CTR_RX_MSU_SLS_15] = { "rx:msu:sls:15", SS7_AS_CTR_RX_MSU_SLS_STR "15" }, + [SS7_AS_CTR_TX_MSU_TOTAL] = { "tx:msu:total", "Total number of MSU transmitted" }, };
static const struct rate_ctr_group_desc ss7_as_rcgd = { diff --git a/src/ss7_as.h b/src/ss7_as.h index db7372c..67c0793 100644 --- a/src/ss7_as.h +++ b/src/ss7_as.h @@ -25,6 +25,22 @@
enum ss7_as_ctr { SS7_AS_CTR_RX_MSU_TOTAL, + SS7_AS_CTR_RX_MSU_SLS_0, + SS7_AS_CTR_RX_MSU_SLS_1, + SS7_AS_CTR_RX_MSU_SLS_2, + SS7_AS_CTR_RX_MSU_SLS_3, + SS7_AS_CTR_RX_MSU_SLS_4, + SS7_AS_CTR_RX_MSU_SLS_5, + SS7_AS_CTR_RX_MSU_SLS_6, + SS7_AS_CTR_RX_MSU_SLS_7, + SS7_AS_CTR_RX_MSU_SLS_8, + SS7_AS_CTR_RX_MSU_SLS_9, + SS7_AS_CTR_RX_MSU_SLS_10, + SS7_AS_CTR_RX_MSU_SLS_11, + SS7_AS_CTR_RX_MSU_SLS_12, + SS7_AS_CTR_RX_MSU_SLS_13, + SS7_AS_CTR_RX_MSU_SLS_14, + SS7_AS_CTR_RX_MSU_SLS_15, SS7_AS_CTR_TX_MSU_TOTAL, };
diff --git a/src/sua.c b/src/sua.c index e81c471..6d023cb 100644 --- a/src/sua.c +++ b/src/sua.c @@ -534,6 +534,8 @@ return rc;
rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_TOTAL); + OSMO_ASSERT(xua->mtp.sls <= 0xf); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_SLS_0 + xua->mtp.sls);
switch (xua->hdr.msg_type) { case 0: /* Reserved, permitted by ETSI TS 101 592 5.2.3.2 */ @@ -564,6 +566,8 @@ return rc;
rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_TOTAL); + OSMO_ASSERT(xua->mtp.sls <= 0xf); + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_SLS_0 + xua->mtp.sls);
switch (xua->hdr.msg_type) { case 0: /* Reserved, permitted by ETSI TS 101 592 5.2.3.2 */