Change in osmo-bsc[master]: add chreq:successful_<reason> rate counters

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

neels gerrit-no-reply at lists.osmocom.org
Tue Nov 2 16:01:54 UTC 2021


neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/26068 )


Change subject: add chreq:successful_<reason> rate counters
......................................................................

add chreq:successful_<reason> rate counters

Related: SYS#4878
Change-Id: I32c2c197a6199617a82986480b686c515fa40d62
---
M include/osmocom/bsc/bts.h
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/bts.c
M src/osmo-bsc/lchan_fsm.c
5 files changed, 60 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/26068/1

diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 68654f2..68e7cfe 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -27,6 +27,13 @@
 	BTS_CTR_CHREQ_ATTEMPTED_OTHER,
 	BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN,
 	BTS_CTR_CHREQ_SUCCESSFUL,
+	BTS_CTR_CHREQ_SUCCESSFUL_EMERG,
+	BTS_CTR_CHREQ_SUCCESSFUL_CALL,
+	BTS_CTR_CHREQ_SUCCESSFUL_LOCATION_UPD,
+	BTS_CTR_CHREQ_SUCCESSFUL_PAG,
+	BTS_CTR_CHREQ_SUCCESSFUL_PDCH,
+	BTS_CTR_CHREQ_SUCCESSFUL_OTHER,
+	BTS_CTR_CHREQ_SUCCESSFUL_UNKNOWN,
 	BTS_CTR_CHREQ_NO_CHANNEL,
 	BTS_CTR_CHREQ_MAX_DELAY_EXCEEDED,
 	BTS_CTR_CHAN_RF_FAIL,
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index cb56028..6a60f06 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -617,6 +617,8 @@
 
 struct lchan_activate_info {
 	enum lchan_activate_for activ_for;
+	/* If activ_for == ACTIVATE_FOR_MS_CHANNEL_REQUEST, the original CHREQ reason. */
+	enum gsm_chreq_reason_t chreq_reason;
 	struct gsm_subscriber_connection *for_conn;
 	struct channel_mode_and_rate ch_mode_rate;
 	struct gsm_encr encr;
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 0e2ffc6..5745f33 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -2091,6 +2091,7 @@
 		  gsm_chreq_name(rqd->reason), rqd->ref.ra, rqd->ta);
 	info = (struct lchan_activate_info){
 		.activ_for = ACTIVATE_FOR_MS_CHANNEL_REQUEST,
+		.chreq_reason = rqd->reason,
 		.ch_mode_rate = {
 			.chan_mode = GSM48_CMODE_SIGN,
 			.chan_rate = CH_RATE_SDCCH,
@@ -2149,8 +2150,32 @@
 	/* send IMMEDIATE ASSIGN CMD on RSL to BTS (to send on CCCH to MS) */
 	rc = rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia);
 
-	if (!rc)
+	if (!rc) {
 		rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_SUCCESSFUL));
+		switch (lchan->activate.info.chreq_reason) {
+		case GSM_CHREQ_REASON_EMERG:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_EMERG));
+			break;
+		case GSM_CHREQ_REASON_CALL:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_CALL));
+			break;
+		case GSM_CHREQ_REASON_LOCATION_UPD:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD));
+			break;
+		case GSM_CHREQ_REASON_PAG:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_PAG));
+			break;
+		case GSM_CHREQ_REASON_PDCH:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_PDCH));
+			break;
+		case GSM_CHREQ_REASON_OTHER:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_OTHER));
+			break;
+		default:
+			rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN));
+			break;
+		}
+	}
 
 	return rc;
 }
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 21ee01a..28059bb 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -849,6 +849,27 @@
 	[BTS_CTR_CHREQ_SUCCESSFUL] = \
 		{ "chreq:successful",
 		  "Successful channel requests (immediate assign sent)" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_EMERG] = \
+		{ "chreq:successful_emerg",
+		  "Sent Immediate Assignment for EMERG" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_CALL] = \
+		{ "chreq:successful_call",
+		  "Sent Immediate Assignment for CALL" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_LOCATION_UPD] = \
+		{ "chreq:successful_location_upd",
+		  "Sent Immediate Assignment for LOCATION_UPD" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_PAG] = \
+		{ "chreq:successful_pag",
+		  "Sent Immediate Assignment for PAG" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_PDCH] = \
+		{ "chreq:successful_pdch",
+		  "Sent Immediate Assignment for PDCH" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_OTHER] = \
+		{ "chreq:successful_other",
+		  "Sent Immediate Assignment for OTHER" },
+	[BTS_CTR_CHREQ_SUCCESSFUL_UNKNOWN] = \
+		{ "chreq:successful_unknown",
+		  "Sent Immediate Assignment for UNKNOWN" },
 	[BTS_CTR_CHREQ_NO_CHANNEL] = \
 		{ "chreq:no_channel",
 		  "Sent to MS no channel available" },
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 2f62487..72cea5f 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -627,6 +627,10 @@
 		lchan->release.requested = false;
 
 		lchan->activate.info = *info;
+		/* To avoid confusion, invalidate info.chreq_reason value if it isn't for a CHREQ */
+		if (lchan->activate.info.activ_for != ACTIVATE_FOR_MS_CHANNEL_REQUEST)
+			lchan->activate.info.chreq_reason = -1;
+
 		lchan->activate.concluded = false;
 		lchan_fsm_state_chg(LCHAN_ST_WAIT_TS_READY);
 		break;

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/26068
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I32c2c197a6199617a82986480b686c515fa40d62
Gerrit-Change-Number: 26068
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211102/5803b980/attachment.htm>


More information about the gerrit-log mailing list