Change in osmo-bsc[master]: Introduce counters to track SRVCC procedures

pespin gerrit-no-reply at lists.osmocom.org
Thu Jun 17 14:05:41 UTC 2021


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24681 )

Change subject: Introduce counters to track SRVCC procedures
......................................................................

Introduce counters to track SRVCC procedures

Related: SYS#5337
Change-Id: I5c20da56d465dbcf4366130394f7c42635a24cc7
---
M include/osmocom/bsc/bts.h
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bts.c
M src/osmo-bsc/handover_fsm.c
4 files changed, 53 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, but someone else must approve
  dexter: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 4436ed0..b6980d1 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -137,6 +137,13 @@
 	BTS_CTR_INTER_BSC_HO_IN_FAILED,
 	BTS_CTR_INTER_BSC_HO_IN_TIMEOUT,
 	BTS_CTR_INTER_BSC_HO_IN_ERROR,
+	BTS_CTR_SRVCC_ATTEMPTED,
+	BTS_CTR_SRVCC_COMPLETED,
+	BTS_CTR_SRVCC_STOPPED,
+	BTS_CTR_SRVCC_NO_CHANNEL,
+	BTS_CTR_SRVCC_TIMEOUT,
+	BTS_CTR_SRVCC_FAILED,
+	BTS_CTR_SRVCC_ERROR,
 };
 
 extern const struct rate_ctr_desc bts_ctr_description[];
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 37e3899..2a73f46 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1116,6 +1116,13 @@
 	BSC_CTR_INTER_BSC_HO_IN_FAILED,
 	BSC_CTR_INTER_BSC_HO_IN_TIMEOUT,
 	BSC_CTR_INTER_BSC_HO_IN_ERROR,
+	BSC_CTR_SRVCC_ATTEMPTED,
+	BSC_CTR_SRVCC_COMPLETED,
+	BSC_CTR_SRVCC_STOPPED,
+	BSC_CTR_SRVCC_NO_CHANNEL,
+	BSC_CTR_SRVCC_TIMEOUT,
+	BSC_CTR_SRVCC_FAILED,
+	BSC_CTR_SRVCC_ERROR,
 	BSC_CTR_PAGING_ATTEMPTED,
 	BSC_CTR_PAGING_DETACHED,
 	BSC_CTR_PAGING_RESPONDED,
@@ -1181,6 +1188,14 @@
 	[BSC_CTR_INTER_BSC_HO_IN_ERROR] =	{"interbsc_ho_in:error",
 						 "Handover from remote BSS failed for other reason"},
 
+	[BSC_CTR_SRVCC_ATTEMPTED] =             {"srvcc:attempted", "Intra-BSC SRVCC attempts"},
+	[BSC_CTR_SRVCC_COMPLETED] =             {"srvcc:completed", "Intra-BSC SRVCC completed"},
+	[BSC_CTR_SRVCC_STOPPED] =               {"srvcc:stopped", "Connection ended during HO"},
+	[BSC_CTR_SRVCC_NO_CHANNEL] =            {"srvcc:no_channel", "Failure to allocate lchan for HO"},
+	[BSC_CTR_SRVCC_TIMEOUT] =               {"srvcc:timeout", "SRVCC timed out"},
+	[BSC_CTR_SRVCC_FAILED] =                {"srvcc:failed", "Received SRVCC Fail messages"},
+	[BSC_CTR_SRVCC_ERROR] =                 {"srvcc:error", "Re-assignment failed for other reason"},
+
 	[BSC_CTR_PAGING_ATTEMPTED] = 		{"paging:attempted", "Paging attempts for a subscriber"},
 	[BSC_CTR_PAGING_DETACHED] = 		{"paging:detached", "Paging request send failures because no responsible BTS was found"},
 	[BSC_CTR_PAGING_RESPONDED] = 		{"paging:responded", "Paging attempts with successful response"},
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index e140565..b64890f 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -1110,6 +1110,28 @@
 	[BTS_CTR_INTER_BSC_HO_IN_ERROR] = \
 		{ "interbsc_ho_in:error",
 		  "Handover from remote BSS failed for other reason" },
+
+	[BTS_CTR_SRVCC_ATTEMPTED] = \
+		{ "srvcc:attempted",
+		  "Intra-BSC handover attempts" },
+	[BTS_CTR_SRVCC_COMPLETED] = \
+		{ "srvcc:completed",
+		  "Intra-BSC handover completed" },
+	[BTS_CTR_SRVCC_STOPPED] = \
+		{ "srvcc:stopped",
+		  "Connection ended during HO" },
+	[BTS_CTR_SRVCC_NO_CHANNEL] = \
+		{ "srvcc:no_channel",
+		  "Failure to allocate lchan for HO" },
+	[BTS_CTR_SRVCC_TIMEOUT] = \
+		{ "srvcc:timeout",
+		   "Handover timed out" },
+	[BTS_CTR_SRVCC_FAILED] = \
+		{ "srvcc:failed",
+		  "Received Handover Fail messages" },
+	[BTS_CTR_SRVCC_ERROR] = \
+		{ "srvcc:error",
+		  "Re-assignment failed for other reason" },
 };
 
 const struct rate_ctr_group_desc bts_ctrg_desc = {
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 08b1dc7..cae5167 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -725,6 +725,7 @@
 		conn->fast_return.last_eutran_plmn_valid = true;
 		memcpy(&conn->fast_return.last_eutran_plmn, &req->last_eutran_plmn,
 		       sizeof(conn->fast_return.last_eutran_plmn));
+		ho_count(ho->new_bts, CTR_SRVCC_ATTEMPTED);
 	}
 
 	lchan_activate(ho->new_lchan, &info);
@@ -824,6 +825,9 @@
 	}
 }
 
+FUNC_RESULT_COUNTER(BSC, SRVCC)
+FUNC_RESULT_COUNTER(BTS, SRVCC)
+
 static void send_handover_performed(struct gsm_subscriber_connection *conn)
 {
 	struct gsm_lchan *lchan = conn->lchan;
@@ -977,6 +981,11 @@
 	ho_count_bsc(result_counter_bsc(ho->scope, result));
 	ho_count_bts(bts, result_counter_BTS_HANDOVER(result));
 	ho_count_bts(bts, result_counter_bts(ho->scope, result));
+	if (ho->scope & HO_INTER_BSC_IN && conn->fast_return.last_eutran_plmn_valid) {
+		/* From outside local BSC and with Last EUTRAN PLMN Id => SRVCC */
+		ho_count_bsc(result_counter_BSC_SRVCC(result));
+		ho_count_bts(bts, result_counter_BTS_SRVCC(result));
+	}
 
 	LOG_HO(conn, LOGL_INFO, "Result: %s\n", handover_result_name(result));
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I5c20da56d465dbcf4366130394f7c42635a24cc7
Gerrit-Change-Number: 24681
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210617/c80b90c6/attachment.htm>


More information about the gerrit-log mailing list