implement incoming_intra_bsc_ho:* rate counters
We have lots of counters for intra-BSC handover *away from* a given BTS, but still missing are counters indicating how many handovers *targeted* a given BTS. Also count incoming HO. Related: SYS#4878 Related: Iba229313d73fa20266f6d4eac5820579fb14c604 (osmo-ttcn3-hacks) Change-Id: Id9f2c6e2865ebe680879018fff08d283ce24c983
This commit is contained in:
parent
a521a3fa39
commit
d5a6dca2f9
|
@ -131,6 +131,13 @@ enum bts_counter_id {
|
|||
BTS_CTR_INTRA_BSC_HO_TIMEOUT,
|
||||
BTS_CTR_INTRA_BSC_HO_FAILED,
|
||||
BTS_CTR_INTRA_BSC_HO_ERROR,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_ATTEMPTED,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_COMPLETED,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_STOPPED,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_NO_CHANNEL,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_TIMEOUT,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_FAILED,
|
||||
BTS_CTR_INCOMING_INTRA_BSC_HO_ERROR,
|
||||
BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED,
|
||||
BTS_CTR_INTER_BSC_HO_OUT_COMPLETED,
|
||||
BTS_CTR_INTER_BSC_HO_OUT_STOPPED,
|
||||
|
|
|
@ -1166,6 +1166,28 @@ const struct rate_ctr_desc bts_ctr_description[] = {
|
|||
{ "intra_bsc_ho:error",
|
||||
"Intra-BSC inter-cell HO failed for other reason" },
|
||||
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_ATTEMPTED] = \
|
||||
{ "incoming_intra_bsc_ho:attempted",
|
||||
"Incoming intra-BSC inter-cell handover attempts" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_COMPLETED] = \
|
||||
{ "incoming_intra_bsc_ho:completed",
|
||||
"Incoming intra-BSC inter-cell handover completed" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_STOPPED] = \
|
||||
{ "incoming_intra_bsc_ho:stopped",
|
||||
"Connection ended during HO" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_NO_CHANNEL] = \
|
||||
{ "incoming_intra_bsc_ho:no_channel",
|
||||
"Failure to allocate lchan for HO" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_TIMEOUT] = \
|
||||
{ "incoming_intra_bsc_ho:timeout",
|
||||
"Handover timed out" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_FAILED] = \
|
||||
{ "incoming_intra_bsc_ho:failed",
|
||||
"Received Handover Fail messages" },
|
||||
[BTS_CTR_INCOMING_INTRA_BSC_HO_ERROR] = \
|
||||
{ "incoming_intra_bsc_ho:error",
|
||||
"Incoming intra-BSC inter-cell HO failed for other reason" },
|
||||
|
||||
[BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED] = \
|
||||
{ "interbsc_ho_out:attempted",
|
||||
"Attempts to handover to remote BSS" },
|
||||
|
|
|
@ -387,6 +387,7 @@ static void handover_start_intra_bsc(struct gsm_subscriber_connection *conn)
|
|||
} else {
|
||||
ho_count(bts, CTR_INTRA_BSC_HO_ATTEMPTED);
|
||||
ho_fsm_update_id(fi, "intraBSC");
|
||||
ho_count_bts(ho->new_bts, BTS_CTR_INCOMING_INTRA_BSC_HO_ATTEMPTED);
|
||||
}
|
||||
|
||||
if (!ho->new_lchan) {
|
||||
|
@ -829,6 +830,7 @@ static int result_counter_bsc(enum handover_scope scope, enum handover_result re
|
|||
FUNC_RESULT_COUNTER(BTS, HANDOVER)
|
||||
FUNC_RESULT_COUNTER(BTS, INTRA_CELL_HO)
|
||||
FUNC_RESULT_COUNTER(BTS, INTRA_BSC_HO)
|
||||
FUNC_RESULT_COUNTER(BTS, INCOMING_INTRA_BSC_HO)
|
||||
FUNC_RESULT_COUNTER(BTS, INTER_BSC_HO_IN)
|
||||
|
||||
/* INTRA_BSC_HO_OUT does not have a NO_CHANNEL result, so can't do this with FUNC_RESULT_COUNTER() macro. */
|
||||
|
@ -1020,6 +1022,9 @@ 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));
|
||||
/* For inter-cell HO, also increment the "INCOMING" counters on the target BTS. */
|
||||
if (ho->scope & HO_INTRA_BSC)
|
||||
ho_count_bts(ho->new_bts, result_counter_BTS_INCOMING_INTRA_BSC_HO(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));
|
||||
|
|
Loading…
Reference in New Issue