Change in openbsc[master]: Use proper measurement for handover
From Max <msuraev@sysmocom.de>:
Max has uploaded a new change for review. https://gerrit.osmocom.org/66 Change subject: Use proper measurement for handover ...................................................................... Use proper measurement for handover Previously *FULL measurements were always used for handover decisions. Those are incorrect in case of DTX - check if it was enabled and use *SUB instead. Note: *SUB values have higher variance so there might be more "bad" values compared to *FULL although real quality remains the same. Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Related: OS#1701 --- M openbsc/src/libbsc/handover_decision.c 1 file changed, 12 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/66/66/1 diff --git a/openbsc/src/libbsc/handover_decision.c b/openbsc/src/libbsc/handover_decision.c index 24c0f79..0f07bca 100644 --- a/openbsc/src/libbsc/handover_decision.c +++ b/openbsc/src/libbsc/handover_decision.c @@ -228,6 +228,7 @@ static int process_meas_rep(struct gsm_meas_rep *mr) { struct gsm_network *net = mr->lchan->ts->trx->bts->network; + enum meas_rep_field dlev, dqual; int av_rxlev; /* we currently only do handover for TCH channels */ @@ -239,22 +240,28 @@ return 0; } + 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, MEAS_REP_DL_RXLEV_FULL, + av_rxlev = get_meas_rep_avg(mr->lchan, dlev, net->handover.win_rxlev_avg); /* Interference HO */ if (rxlev2dbm(av_rxlev) > -85 && - meas_rep_n_out_of_m_be(mr->lchan, MEAS_REP_DL_RXQUAL_FULL, - 3, 4, 5)) + meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) return attempt_handover(mr); /* Bad Quality */ - if (meas_rep_n_out_of_m_be(mr->lchan, MEAS_REP_DL_RXQUAL_FULL, - 3, 4, 5)) + if (meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) return attempt_handover(mr); /* Low Level */ -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 1 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de>
From Harald Welte <laforge@gnumonks.org>:
Harald Welte has posted comments on this change. Change subject: Use proper measurement for handover ...................................................................... Patch Set 1: Code-Review+1 looks fine to me. Did you test/confirm hand-over operation after this change with both no-DTX and DTX enabled? -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 1 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
From Max <msuraev@sysmocom.de>:
Max has posted comments on this change. Change subject: Use proper measurement for handover ...................................................................... Patch Set 1: Not yet - the osmo-bts changes are not ready for test yet. -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 1 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev@sysmocom.de> Gerrit-HasComments: No
Patch Set 1: Note: this is about downlink measurements so until downlink DTX is implemented HO works as before (I've tested that). -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 1 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev@sysmocom.de> Gerrit-HasComments: No
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 1 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev@sysmocom.de> Gerrit-HasComments: No
Holger Freyther has submitted this change and it was merged. Change subject: Use proper measurement for handover ...................................................................... Use proper measurement for handover Previously *FULL measurements were always used for handover decisions. Those are incorrect in case of DTX - check if it was enabled and use *SUB instead. Note: *SUB values have higher variance so there might be more "bad" values compared to *FULL although real quality remains the same. Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Related: OS#1701 Reviewed-on: https://gerrit.osmocom.org/66 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org> --- M openbsc/src/libbsc/handover_decision.c 1 file changed, 12 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/src/libbsc/handover_decision.c b/openbsc/src/libbsc/handover_decision.c index 24c0f79..0f07bca 100644 --- a/openbsc/src/libbsc/handover_decision.c +++ b/openbsc/src/libbsc/handover_decision.c @@ -228,6 +228,7 @@ static int process_meas_rep(struct gsm_meas_rep *mr) { struct gsm_network *net = mr->lchan->ts->trx->bts->network; + enum meas_rep_field dlev, dqual; int av_rxlev; /* we currently only do handover for TCH channels */ @@ -239,22 +240,28 @@ return 0; } + 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, MEAS_REP_DL_RXLEV_FULL, + av_rxlev = get_meas_rep_avg(mr->lchan, dlev, net->handover.win_rxlev_avg); /* Interference HO */ if (rxlev2dbm(av_rxlev) > -85 && - meas_rep_n_out_of_m_be(mr->lchan, MEAS_REP_DL_RXQUAL_FULL, - 3, 4, 5)) + meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) return attempt_handover(mr); /* Bad Quality */ - if (meas_rep_n_out_of_m_be(mr->lchan, MEAS_REP_DL_RXQUAL_FULL, - 3, 4, 5)) + if (meas_rep_n_out_of_m_be(mr->lchan, dqual, 3, 4, 5)) return attempt_handover(mr); /* Low Level */ -- To view, visit https://gerrit.osmocom.org/66 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I95e8e544047a83a256e057a47458678f40a19a15 Gerrit-PatchSet: 2 Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev@sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> Gerrit-Reviewer: Holger Freyther <holger@freyther.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev@sysmocom.de>
participants (4)
-
gerrit-no-reply@lists.osmocom.org -
Harald Welte -
Holger Freyther -
Max