From 87e729d059035ac291a5febf5f39d18d97e4d0a8 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 11 Nov 2020 19:57:14 +0100 Subject: ho act: omit BS Power, MS Power, TA Change-Id: If4f56e907b3a81124891668cc6253cd7921d9c6f --- src/osmo-bsc/abis_rsl.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 858c683e1..334dc4807 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -467,6 +467,7 @@ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref) int rc; uint8_t *len; uint8_t ta; + bool ho_inter = false; struct rsl_ie_chan_mode cm; struct gsm48_chan_desc cd; @@ -536,14 +537,25 @@ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref) case RSL_ACT_INTER_ASYNC: case RSL_ACT_INTER_SYNC: msgb_tv_put(msg, RSL_IE_HANDO_REF, ho_ref); + ho_inter = true; break; default: break; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); - msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); - msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); + /* For intra-cell handover (a.k.a. re-assignment which we still do by Handover at the time of writing), set + * ho_inter back to false. */ + if (ho_inter + && lchan->activate.info.re_use_mgw_endpoint_from_lchan != NULL + && lchan->ts->trx->bts == lchan->activate.info.re_use_mgw_endpoint_from_lchan->ts->trx->bts) + ho_inter = false; + + if (!ho_inter) { + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); + msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); + msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); + } + /* indicate MS power control to be performed by BTS: */ if (bts->type == GSM_BTS_TYPE_OSMOBTS) msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); -- cgit v1.2.3