From dbe59f69a4159846731bc2376c333b0059c39ed9 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Sat, 29 Aug 2020 03:23:31 +0000 Subject: add {BTS,BSC}_CTR_INTER_BSC_HO_OUT_FAILED for RR HO Failure So far, during inter-BSC outgoing handover, when receiving an RR Handover Failure from the MS, it would be counted as 'error'. Instead, add the 'failed' counter like for all other HO types. It may make sense to omit the 'failed' counter for inter-BSC *incoming* handover, because then we won't receive an RR Handover Failure message. I probably got those two mixed up during initial development. Related: OS#4736 Change-Id: I9a61d5cc7273a830ba4e66e43e4aac6cdb707471 --- include/osmocom/bsc/bts.h | 2 ++ include/osmocom/bsc/gsm_data.h | 2 ++ src/osmo-bsc/handover_fsm.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index dc51d1720..5506a86eb 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -93,6 +93,7 @@ enum bts_counter_id { BTS_CTR_INTER_BSC_HO_OUT_COMPLETED, BTS_CTR_INTER_BSC_HO_OUT_STOPPED, BTS_CTR_INTER_BSC_HO_OUT_TIMEOUT, + BTS_CTR_INTER_BSC_HO_OUT_FAILED, BTS_CTR_INTER_BSC_HO_OUT_ERROR, BTS_CTR_INTER_BSC_HO_IN_ATTEMPTED, BTS_CTR_INTER_BSC_HO_IN_COMPLETED, @@ -190,6 +191,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { "Handover to remote BSS completed"}, [BTS_CTR_INTER_BSC_HO_OUT_STOPPED] = {"interbsc_ho_out:stopped", "Connection ended during HO"}, [BTS_CTR_INTER_BSC_HO_OUT_TIMEOUT] = {"interbsc_ho_out:timeout", "Handover timed out"}, + [BTS_CTR_INTER_BSC_HO_OUT_FAILED] = {"interbsc_ho_out:failed", "Received Handover Fail message"}, [BTS_CTR_INTER_BSC_HO_OUT_ERROR] = {"interbsc_ho_out:error", "Handover to remote BSS failed for other reason"}, diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 120c4a464..09c02146f 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -987,6 +987,7 @@ enum { BSC_CTR_INTER_BSC_HO_OUT_COMPLETED, BSC_CTR_INTER_BSC_HO_OUT_STOPPED, BSC_CTR_INTER_BSC_HO_OUT_TIMEOUT, + BSC_CTR_INTER_BSC_HO_OUT_FAILED, BSC_CTR_INTER_BSC_HO_OUT_ERROR, BSC_CTR_INTER_BSC_HO_IN_ATTEMPTED, BSC_CTR_INTER_BSC_HO_IN_COMPLETED, @@ -1044,6 +1045,7 @@ static const struct rate_ctr_desc bsc_ctr_description[] = { "Handover to remote BSS completed"}, [BSC_CTR_INTER_BSC_HO_OUT_STOPPED] = {"interbsc_ho_out:stopped", "Connection ended during HO"}, [BSC_CTR_INTER_BSC_HO_OUT_TIMEOUT] = {"interbsc_ho_out:timeout", "Handover timed out"}, + [BSC_CTR_INTER_BSC_HO_OUT_FAILED] = {"interbsc_ho_out:failed", "Received Handover Fail message"}, [BSC_CTR_INTER_BSC_HO_OUT_ERROR] = {"interbsc_ho_out:error", "Handover to remote BSS failed for other reason"}, diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index 3975ed303..d93e5bcb8 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -716,6 +716,8 @@ static int result_counter_BSC_INTER_BSC_HO_OUT(enum handover_result result) { switch (result) { case HO_RESULT_OK: return BSC_CTR_INTER_BSC_HO_OUT_COMPLETED; + case HO_RESULT_FAIL_RR_HO_FAIL: + return BSC_CTR_INTER_BSC_HO_OUT_FAILED; case HO_RESULT_FAIL_TIMEOUT: return BSC_CTR_INTER_BSC_HO_OUT_TIMEOUT; case HO_RESULT_CONN_RELEASE: @@ -751,6 +753,8 @@ static int result_counter_BTS_INTER_BSC_HO_OUT(enum handover_result result) { switch (result) { case HO_RESULT_OK: return BTS_CTR_INTER_BSC_HO_OUT_COMPLETED; + case HO_RESULT_FAIL_RR_HO_FAIL: + return BTS_CTR_INTER_BSC_HO_OUT_FAILED; case HO_RESULT_FAIL_TIMEOUT: return BTS_CTR_INTER_BSC_HO_OUT_TIMEOUT; case HO_RESULT_CONN_RELEASE: -- cgit v1.2.3