Count intra-cell and intra-bsc handover separately
Currently the counters don't distinguish between intra-cell and intra-bsc handover. Add _CTR_INTRA_CELL_HO_ and _CTR_INTRA_BSC_HO_ counters to track intra-cell/bsc handover separately. Change-Id: I3a1195640b99813036c9f1426ee5f07548e26547 Related: SYS#4877
This commit is contained in:
parent
02f0b30cda
commit
bf2a4b69d8
|
@ -75,6 +75,20 @@ enum bts_counter_id {
|
|||
BTS_CTR_HANDOVER_TIMEOUT,
|
||||
BTS_CTR_HANDOVER_FAILED,
|
||||
BTS_CTR_HANDOVER_ERROR,
|
||||
BTS_CTR_INTRA_CELL_HO_ATTEMPTED,
|
||||
BTS_CTR_INTRA_CELL_HO_COMPLETED,
|
||||
BTS_CTR_INTRA_CELL_HO_STOPPED,
|
||||
BTS_CTR_INTRA_CELL_HO_NO_CHANNEL,
|
||||
BTS_CTR_INTRA_CELL_HO_TIMEOUT,
|
||||
BTS_CTR_INTRA_CELL_HO_FAILED,
|
||||
BTS_CTR_INTRA_CELL_HO_ERROR,
|
||||
BTS_CTR_INTRA_BSC_HO_ATTEMPTED,
|
||||
BTS_CTR_INTRA_BSC_HO_COMPLETED,
|
||||
BTS_CTR_INTRA_BSC_HO_STOPPED,
|
||||
BTS_CTR_INTRA_BSC_HO_NO_CHANNEL,
|
||||
BTS_CTR_INTRA_BSC_HO_TIMEOUT,
|
||||
BTS_CTR_INTRA_BSC_HO_FAILED,
|
||||
BTS_CTR_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,
|
||||
|
@ -154,6 +168,22 @@ static const struct rate_ctr_desc bts_ctr_description[] = {
|
|||
[BTS_CTR_HANDOVER_FAILED] = {"handover:failed", "Received Handover Fail messages"},
|
||||
[BTS_CTR_HANDOVER_ERROR] = {"handover:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BTS_CTR_INTRA_CELL_HO_ATTEMPTED] = {"intra_cell_ho:attempted", "Intra-Cell handover attempts"},
|
||||
[BTS_CTR_INTRA_CELL_HO_COMPLETED] = {"intra_cell_ho:completed", "Intra-Cell handover completed"},
|
||||
[BTS_CTR_INTRA_CELL_HO_STOPPED] = {"intra_cell_ho:stopped", "Connection ended during HO"},
|
||||
[BTS_CTR_INTRA_CELL_HO_NO_CHANNEL] = {"intra_cell_ho:no_channel", "Failure to allocate lchan for HO"},
|
||||
[BTS_CTR_INTRA_CELL_HO_TIMEOUT] = {"intra_cell_ho:timeout", "Handover timed out"},
|
||||
[BTS_CTR_INTRA_CELL_HO_FAILED] = {"intra_cell_ho:failed", "Received Handover Fail messages"},
|
||||
[BTS_CTR_INTRA_CELL_HO_ERROR] = {"intra_cell_ho:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BTS_CTR_INTRA_BSC_HO_ATTEMPTED] = {"intra_bsc_ho:attempted", "Intra-BSC handover attempts"},
|
||||
[BTS_CTR_INTRA_BSC_HO_COMPLETED] = {"intra_bsc_ho:completed", "Intra-BSC handover completed"},
|
||||
[BTS_CTR_INTRA_BSC_HO_STOPPED] = {"intra_bsc_ho:stopped", "Connection ended during HO"},
|
||||
[BTS_CTR_INTRA_BSC_HO_NO_CHANNEL] = {"intra_bsc_ho:no_channel", "Failure to allocate lchan for HO"},
|
||||
[BTS_CTR_INTRA_BSC_HO_TIMEOUT] = {"intra_bsc_ho:timeout", "Handover timed out"},
|
||||
[BTS_CTR_INTRA_BSC_HO_FAILED] = {"intra_bsc_ho:failed", "Received Handover Fail messages"},
|
||||
[BTS_CTR_INTRA_BSC_HO_ERROR] = {"intra_bsc_ho:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED] = {"interbsc_ho_out:attempted",
|
||||
"Attempts to handover to remote BSS"},
|
||||
[BTS_CTR_INTER_BSC_HO_OUT_COMPLETED] = {"interbsc_ho_out:completed",
|
||||
|
@ -211,6 +241,62 @@ enum {
|
|||
BTS_STAT_TS_BORKEN,
|
||||
};
|
||||
|
||||
static const struct osmo_stat_item_desc bts_stat_desc[] = {
|
||||
[BTS_STAT_CHAN_LOAD_AVERAGE] = { "chanloadavg", "Channel load average", "%", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_USED] = { "chan_ccch_sdcch4:used",
|
||||
"Number of CCCH+SDCCH4 channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] = { "chan_ccch_sdcch4:total",
|
||||
"Number of CCCH+SDCCH4 channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_USED] = { "chan_tch_f:used",
|
||||
"Number of TCH/F channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TOTAL] = { "chan_tch_f:total",
|
||||
"Number of TCH/F channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_H_USED] = { "chan_tch_h:used",
|
||||
"Number of TCH/H channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_H_TOTAL] = { "chan_tch_h:total",
|
||||
"Number of TCH/H channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_USED] = { "chan_sdcch8:used",
|
||||
"Number of SDCCH8 channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_TOTAL] = { "chan_sdcch8:total",
|
||||
"Number of SDCCH8 channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_PDCH_USED] = { "chan_tch_f_pdch:used",
|
||||
"Number of TCH/F_PDCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] = { "chan_tch_f_pdch:total",
|
||||
"Number of TCH/F_PDCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] = { "chan_ccch_sdcch4_cbch:used",
|
||||
"Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] = { "chan_ccch_sdcch4_cbch:total",
|
||||
"Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_CBCH_USED] = { "chan_sdcch8_cbch:used",
|
||||
"Number of SDCCH8+CBCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] = { "chan_sdcch8_cbch:total",
|
||||
"Number of SDCCH8+CBCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] = { "chan_tch_f_tch_h_pdch:used",
|
||||
"Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] = { "chan_tch_f_tch_h_pdch:total",
|
||||
"Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_T3122] = { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator",
|
||||
"s", 16, GSM_T3122_DEFAULT },
|
||||
[BTS_STAT_RACH_BUSY] = { "rach_busy",
|
||||
"RACH slots with signal above threshold", "%", 16, 0 },
|
||||
[BTS_STAT_RACH_ACCESS] = { "rach_access",
|
||||
"RACH slots with access bursts in them", "%", 16, 0 },
|
||||
[BTS_STAT_OML_CONNECTED] = { "oml_connected", "Number of OML links connected", "", 16, 0 },
|
||||
[BTS_STAT_RSL_CONNECTED] = { "rsl_connected", "Number of RSL links connected", "", 16, 0 },
|
||||
[BTS_STAT_LCHAN_BORKEN] = { "lchan_borken",
|
||||
"Number of lchans in the BORKEN state", "", 16, 0 },
|
||||
[BTS_STAT_TS_BORKEN] = { "ts_borken",
|
||||
"Number of timeslots in the BORKEN state", "", 16, 0 },
|
||||
};
|
||||
|
||||
static const struct osmo_stat_item_group_desc bts_statg_desc = {
|
||||
.group_name_prefix = "bts",
|
||||
.group_description = "base transceiver station",
|
||||
.class_id = OSMO_STATS_CLASS_GLOBAL,
|
||||
.num_items = ARRAY_SIZE(bts_stat_desc),
|
||||
.item_desc = bts_stat_desc,
|
||||
};
|
||||
|
||||
enum gsm_bts_type {
|
||||
GSM_BTS_TYPE_UNKNOWN,
|
||||
GSM_BTS_TYPE_BS11,
|
||||
|
|
|
@ -969,6 +969,20 @@ enum {
|
|||
BSC_CTR_HANDOVER_TIMEOUT,
|
||||
BSC_CTR_HANDOVER_FAILED,
|
||||
BSC_CTR_HANDOVER_ERROR,
|
||||
BSC_CTR_INTRA_CELL_HO_ATTEMPTED,
|
||||
BSC_CTR_INTRA_CELL_HO_COMPLETED,
|
||||
BSC_CTR_INTRA_CELL_HO_STOPPED,
|
||||
BSC_CTR_INTRA_CELL_HO_NO_CHANNEL,
|
||||
BSC_CTR_INTRA_CELL_HO_TIMEOUT,
|
||||
BSC_CTR_INTRA_CELL_HO_FAILED,
|
||||
BSC_CTR_INTRA_CELL_HO_ERROR,
|
||||
BSC_CTR_INTRA_BSC_HO_ATTEMPTED,
|
||||
BSC_CTR_INTRA_BSC_HO_COMPLETED,
|
||||
BSC_CTR_INTRA_BSC_HO_STOPPED,
|
||||
BSC_CTR_INTRA_BSC_HO_NO_CHANNEL,
|
||||
BSC_CTR_INTRA_BSC_HO_TIMEOUT,
|
||||
BSC_CTR_INTRA_BSC_HO_FAILED,
|
||||
BSC_CTR_INTRA_BSC_HO_ERROR,
|
||||
BSC_CTR_INTER_BSC_HO_OUT_ATTEMPTED,
|
||||
BSC_CTR_INTER_BSC_HO_OUT_COMPLETED,
|
||||
BSC_CTR_INTER_BSC_HO_OUT_STOPPED,
|
||||
|
@ -1008,6 +1022,22 @@ static const struct rate_ctr_desc bsc_ctr_description[] = {
|
|||
[BSC_CTR_HANDOVER_FAILED] = {"handover:failed", "Received Handover Fail messages"},
|
||||
[BSC_CTR_HANDOVER_ERROR] = {"handover:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BSC_CTR_INTRA_CELL_HO_ATTEMPTED] = {"intra_cell_ho:attempted", "Intra-Cell handover attempts"},
|
||||
[BSC_CTR_INTRA_CELL_HO_COMPLETED] = {"intra_cell_ho:completed", "Intra-Cell handover completed"},
|
||||
[BSC_CTR_INTRA_CELL_HO_STOPPED] = {"intra_cell_ho:stopped", "Connection ended during HO"},
|
||||
[BSC_CTR_INTRA_CELL_HO_NO_CHANNEL] = {"intra_cell_ho:no_channel", "Failure to allocate lchan for HO"},
|
||||
[BSC_CTR_INTRA_CELL_HO_TIMEOUT] = {"intra_cell_ho:timeout", "Handover timed out"},
|
||||
[BSC_CTR_INTRA_CELL_HO_FAILED] = {"intra_cell_ho:failed", "Received Handover Fail messages"},
|
||||
[BSC_CTR_INTRA_CELL_HO_ERROR] = {"intra_cell_ho:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BSC_CTR_INTRA_BSC_HO_ATTEMPTED] = {"intra_bsc_ho:attempted", "Intra-BSC handover attempts"},
|
||||
[BSC_CTR_INTRA_BSC_HO_COMPLETED] = {"intra_bsc_ho:completed", "Intra-BSC handover completed"},
|
||||
[BSC_CTR_INTRA_BSC_HO_STOPPED] = {"intra_bsc_ho:stopped", "Connection ended during HO"},
|
||||
[BSC_CTR_INTRA_BSC_HO_NO_CHANNEL] = {"intra_bsc_ho:no_channel", "Failure to allocate lchan for HO"},
|
||||
[BSC_CTR_INTRA_BSC_HO_TIMEOUT] = {"intra_bsc_ho:timeout", "Handover timed out"},
|
||||
[BSC_CTR_INTRA_BSC_HO_FAILED] = {"intra_bsc_ho:failed", "Received Handover Fail messages"},
|
||||
[BSC_CTR_INTRA_BSC_HO_ERROR] = {"intra_bsc_ho:error", "Re-assignment failed for other reason"},
|
||||
|
||||
[BSC_CTR_INTER_BSC_HO_OUT_ATTEMPTED] = {"interbsc_ho_out:attempted",
|
||||
"Attempts to handover to remote BSS"},
|
||||
[BSC_CTR_INTER_BSC_HO_OUT_COMPLETED] = {"interbsc_ho_out:completed",
|
||||
|
|
|
@ -120,62 +120,6 @@ int gsm_bts_model_register(struct gsm_bts_model *model)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct osmo_stat_item_desc bts_stat_desc[] = {
|
||||
[BTS_STAT_CHAN_LOAD_AVERAGE] = { "chanloadavg", "Channel load average", "%", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_USED] = { "chan_ccch_sdcch4:used",
|
||||
"Number of CCCH+SDCCH4 channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] = { "chan_ccch_sdcch4:total",
|
||||
"Number of CCCH+SDCCH4 channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_USED] = { "chan_tch_f:used",
|
||||
"Number of TCH/F channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TOTAL] = { "chan_tch_f:total",
|
||||
"Number of TCH/F channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_H_USED] = { "chan_tch_h:used",
|
||||
"Number of TCH/H channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_H_TOTAL] = { "chan_tch_h:total",
|
||||
"Number of TCH/H channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_USED] = { "chan_sdcch8:used",
|
||||
"Number of SDCCH8 channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_TOTAL] = { "chan_sdcch8:total",
|
||||
"Number of SDCCH8 channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_PDCH_USED] = { "chan_tch_f_pdch:used",
|
||||
"Number of TCH/F_PDCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] = { "chan_tch_f_pdch:total",
|
||||
"Number of TCH/F_PDCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] = { "chan_ccch_sdcch4_cbch:used",
|
||||
"Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] = { "chan_ccch_sdcch4_cbch:total",
|
||||
"Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_CBCH_USED] = { "chan_sdcch8_cbch:used",
|
||||
"Number of SDCCH8+CBCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] = { "chan_sdcch8_cbch:total",
|
||||
"Number of SDCCH8+CBCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] = { "chan_tch_f_tch_h_pdch:used",
|
||||
"Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 },
|
||||
[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] = { "chan_tch_f_tch_h_pdch:total",
|
||||
"Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 },
|
||||
[BTS_STAT_T3122] = { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator",
|
||||
"s", 16, GSM_T3122_DEFAULT },
|
||||
[BTS_STAT_RACH_BUSY] = { "rach_busy",
|
||||
"RACH slots with signal above threshold", "%", 16, 0 },
|
||||
[BTS_STAT_RACH_ACCESS] = { "rach_access",
|
||||
"RACH slots with access bursts in them", "%", 16, 0 },
|
||||
[BTS_STAT_OML_CONNECTED] = { "oml_connected", "Number of OML links connected", "", 16, 0 },
|
||||
[BTS_STAT_RSL_CONNECTED] = { "rsl_connected", "Number of RSL links connected", "", 16, 0 },
|
||||
[BTS_STAT_LCHAN_BORKEN] = { "lchan_borken",
|
||||
"Number of lchans in the BORKEN state", "", 16, 0 },
|
||||
[BTS_STAT_TS_BORKEN] = { "ts_borken",
|
||||
"Number of timeslots in the BORKEN state", "", 16, 0 },
|
||||
};
|
||||
|
||||
static const struct osmo_stat_item_group_desc bts_statg_desc = {
|
||||
.group_name_prefix = "bts",
|
||||
.group_description = "base transceiver station",
|
||||
.class_id = OSMO_STATS_CLASS_GLOBAL,
|
||||
.num_items = ARRAY_SIZE(bts_stat_desc),
|
||||
.item_desc = bts_stat_desc,
|
||||
};
|
||||
|
||||
static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 };
|
||||
static const uint8_t bts_cell_timer_default[] =
|
||||
{ 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 };
|
||||
|
|
|
@ -369,12 +369,13 @@ static void handover_start_intra_bsc(struct gsm_subscriber_connection *conn)
|
|||
|
||||
ho->new_lchan = lchan_select_by_type(ho->new_bts, ho->new_lchan_type);
|
||||
|
||||
if (ho->scope & HO_INTRA_CELL)
|
||||
if (ho->scope & HO_INTRA_CELL) {
|
||||
ho_count(bts, CTR_INTRA_CELL_HO_ATTEMPTED);
|
||||
ho_fsm_update_id(fi, "intraCell");
|
||||
else
|
||||
} else {
|
||||
ho_count(bts, CTR_INTRA_BSC_HO_ATTEMPTED);
|
||||
ho_fsm_update_id(fi, "intraBSC");
|
||||
|
||||
ho_count(bts, CTR_HANDOVER_ATTEMPTED);
|
||||
}
|
||||
|
||||
if (!ho->new_lchan) {
|
||||
ho_fail(HO_RESULT_FAIL_NO_CHANNEL,
|
||||
|
@ -697,8 +698,9 @@ static int result_counter_##obj##_##name(enum handover_result result) \
|
|||
} \
|
||||
}
|
||||
|
||||
FUNC_RESULT_COUNTER(BSC, ASSIGNMENT)
|
||||
FUNC_RESULT_COUNTER(BSC, HANDOVER)
|
||||
FUNC_RESULT_COUNTER(BSC, INTRA_CELL_HO)
|
||||
FUNC_RESULT_COUNTER(BSC, INTRA_BSC_HO)
|
||||
FUNC_RESULT_COUNTER(BSC, INTER_BSC_HO_IN)
|
||||
|
||||
static int result_counter_BSC_INTER_BSC_HO_OUT(enum handover_result result) {
|
||||
|
@ -718,15 +720,16 @@ static int result_counter_BSC_INTER_BSC_HO_OUT(enum handover_result result) {
|
|||
static int result_counter_bsc(enum handover_scope scope, enum handover_result result)
|
||||
{
|
||||
switch (scope) {
|
||||
case HO_INTRA_CELL:
|
||||
return result_counter_BSC_ASSIGNMENT(result);
|
||||
default:
|
||||
LOGP(DHO, LOGL_ERROR, "invalid enum handover_scope value: %s\n",
|
||||
handover_scope_name(scope));
|
||||
/* use "normal" HO_INTRA_BSC counter... */
|
||||
/* use "normal" HO counter... */
|
||||
case HO_NO_HANDOVER:
|
||||
case HO_INTRA_BSC:
|
||||
return result_counter_BSC_HANDOVER(result);
|
||||
case HO_INTRA_CELL:
|
||||
return result_counter_BSC_INTRA_CELL_HO(result);
|
||||
case HO_INTRA_BSC:
|
||||
return result_counter_BSC_INTRA_BSC_HO(result);
|
||||
case HO_INTER_BSC_OUT:
|
||||
return result_counter_BSC_INTER_BSC_HO_OUT(result);
|
||||
case HO_INTER_BSC_IN:
|
||||
|
@ -734,8 +737,9 @@ static int result_counter_bsc(enum handover_scope scope, enum handover_result re
|
|||
}
|
||||
}
|
||||
|
||||
FUNC_RESULT_COUNTER(BTS, ASSIGNMENT)
|
||||
FUNC_RESULT_COUNTER(BTS, HANDOVER)
|
||||
FUNC_RESULT_COUNTER(BTS, INTRA_CELL_HO)
|
||||
FUNC_RESULT_COUNTER(BTS, INTRA_BSC_HO)
|
||||
FUNC_RESULT_COUNTER(BTS, INTER_BSC_HO_IN)
|
||||
|
||||
static int result_counter_BTS_INTER_BSC_HO_OUT(enum handover_result result) {
|
||||
|
@ -755,15 +759,16 @@ static int result_counter_BTS_INTER_BSC_HO_OUT(enum handover_result result) {
|
|||
static int result_counter_bts(enum handover_scope scope, enum handover_result result)
|
||||
{
|
||||
switch (scope) {
|
||||
case HO_INTRA_CELL:
|
||||
return result_counter_BTS_ASSIGNMENT(result);
|
||||
default:
|
||||
LOGP(DHO, LOGL_ERROR, "invalid enum handover_scope value: %s\n",
|
||||
handover_scope_name(scope));
|
||||
/* use "normal" HO_INTRA_BSC counter... */
|
||||
/* use "normal" HO counter... */
|
||||
case HO_NO_HANDOVER:
|
||||
case HO_INTRA_BSC:
|
||||
return result_counter_BTS_HANDOVER(result);
|
||||
case HO_INTRA_CELL:
|
||||
return result_counter_BTS_INTRA_CELL_HO(result);
|
||||
case HO_INTRA_BSC:
|
||||
return result_counter_BTS_INTRA_BSC_HO(result);
|
||||
case HO_INTER_BSC_OUT:
|
||||
return result_counter_BTS_INTER_BSC_HO_OUT(result);
|
||||
case HO_INTER_BSC_IN:
|
||||
|
|
Loading…
Reference in New Issue