aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/handover_fsm.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-06-15 17:06:19 +0200
committerpespin <pespin@sysmocom.de>2021-06-17 14:05:40 +0000
commitf274976df313c6fe222a2e2432e8c91511e8feee (patch)
treecbb941623346372a67b18f10a497243ed5706e3b /src/osmo-bsc/handover_fsm.c
parentb9a62638230b65d3620adb949ad1a55e1130d8f9 (diff)
Introduce counters to track SRVCC procedures
Diffstat (limited to 'src/osmo-bsc/handover_fsm.c')
-rw-r--r--src/osmo-bsc/handover_fsm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 08b1dc7c5..cae5167b4 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -725,6 +725,7 @@ void handover_start_inter_bsc_in(struct gsm_subscriber_connection *conn,
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 @@ static int result_counter_bts(enum handover_scope scope, enum handover_result re
}
}
+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 @@ void handover_end(struct gsm_subscriber_connection *conn, enum handover_result r
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));