diff options
Diffstat (limited to 'src/osmo-bsc/handover_decision.c')
-rw-r--r-- | src/osmo-bsc/handover_decision.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/src/osmo-bsc/handover_decision.c b/src/osmo-bsc/handover_decision.c index 7eb8f31e0..2fb466cbe 100644 --- a/src/osmo-bsc/handover_decision.c +++ b/src/osmo-bsc/handover_decision.c @@ -201,8 +201,7 @@ static void attempt_handover(struct gsm_meas_rep *mr) req = (struct handover_out_req){ .from_hodec_id = HODEC1, .old_lchan = mr->lchan, - .target_nik = { - .from_bts = bts->nr, + .target_cell_ab = { .arfcn = best_cell->arfcn, .bsic = best_cell->bsic, }, @@ -215,7 +214,6 @@ static void attempt_handover(struct gsm_meas_rep *mr) static void on_measurement_report(struct gsm_meas_rep *mr) { struct gsm_bts *bts = mr->lchan->ts->trx->bts; - enum meas_rep_field dlev, dqual; int av_rxlev; unsigned int pwr_interval; @@ -232,24 +230,16 @@ static void on_measurement_report(struct gsm_meas_rep *mr) return; } - if (mr->flags & MEAS_REP_F_DL_DTX) { - dlev = MEAS_REP_DL_RXLEV_SUB; - dqual = MEAS_REP_DL_RXQUAL_SUB; - } else { - dlev = MEAS_REP_DL_RXLEV_FULL; - dqual = MEAS_REP_DL_RXQUAL_FULL; - } - /* parse actual neighbor cell info */ if (mr->num_cell > 0 && mr->num_cell < 7) process_meas_neigh(mr); - av_rxlev = get_meas_rep_avg(mr->lchan, dlev, + av_rxlev = get_meas_rep_avg(mr->lchan, TDMA_MEAS_FIELD_RXLEV, TDMA_MEAS_DIR_DL, TDMA_MEAS_SET_AUTO, ho_get_hodec1_rxlev_avg_win(bts->ho)); /* Interference HO */ if (rxlev2dbm(av_rxlev) > -85 && - meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) { + meas_rep_n_out_of_m_be(mr->lchan, TDMA_MEAS_FIELD_RXQUAL, TDMA_MEAS_DIR_DL, TDMA_MEAS_SET_AUTO, 3, 4, 5)) { LOGPC(DHO, LOGL_INFO, "HO cause: Interference HO av_rxlev=%d dBm\n", rxlev2dbm(av_rxlev)); attempt_handover(mr); @@ -257,7 +247,7 @@ static void on_measurement_report(struct gsm_meas_rep *mr) } /* Bad Quality */ - if (meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) { + if (meas_rep_n_out_of_m_be(mr->lchan, TDMA_MEAS_FIELD_RXQUAL, TDMA_MEAS_DIR_DL, TDMA_MEAS_SET_AUTO, 3, 4, 5)) { LOGPC(DHO, LOGL_INFO, "HO cause: Bad Quality av_rxlev=%d dBm\n", rxlev2dbm(av_rxlev)); attempt_handover(mr); return; |