hodec1: use same automatic FULL/SUBSET choice as in hodec2
So far handover decision 1 uses the FULL or SUBSET TDMA measurements across all measurement reports, depending on whether the last measurement report indicates that DTX is in use or not. Handover decision 2 since recently uses TDMA_MEAS_SET_AUTO to choose for each individual measurement report whether to use the FULL or the SUBSET value, depending on each single report's DTX use flag. Also switch handover decision 1 to heed every single report's DTX flag, by simply using TDMA_MEAS_SET_AUTO, replacing the current decision. Change-Id: Iebe980254b8c4a53ef9e7d720e417dc67077eff7
This commit is contained in:
parent
9d4865ecae
commit
052934d0e6
|
@ -214,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 tdma_meas_set meas_set;
|
||||
int av_rxlev;
|
||||
unsigned int pwr_interval;
|
||||
|
||||
|
@ -231,18 +230,16 @@ static void on_measurement_report(struct gsm_meas_rep *mr)
|
|||
return;
|
||||
}
|
||||
|
||||
meas_set = (mr->flags & MEAS_REP_F_DL_DTX) ? TDMA_MEAS_SET_SUB : TDMA_MEAS_SET_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, TDMA_MEAS_FIELD_RXLEV, TDMA_MEAS_DIR_DL, meas_set,
|
||||
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, TDMA_MEAS_FIELD_RXQUAL, TDMA_MEAS_DIR_DL, meas_set, 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);
|
||||
|
@ -250,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, TDMA_MEAS_FIELD_RXQUAL, TDMA_MEAS_DIR_DL, meas_set, 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;
|
||||
|
|
Loading…
Reference in New Issue