diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-11-11 19:57:14 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-11-16 17:02:06 +0100 |
commit | 87e729d059035ac291a5febf5f39d18d97e4d0a8 (patch) | |
tree | b19a9d1eed5c5625c55a7dc8e3f0638042815b59 | |
parent | f07f05900086b2925159d61eaa42fd3589c9b5b6 (diff) |
ho act: omit BS Power, MS Power, TAneels/ho_tmp
Change-Id: If4f56e907b3a81124891668cc6253cd7921d9c6f
-rw-r--r-- | src/osmo-bsc/abis_rsl.c | 18 |
1 files 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); |