diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-10-10 16:17:26 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-10-16 13:02:38 +0200 |
commit | 89357ec6cdddd481aede5cab2abb884f06ad6d08 (patch) | |
tree | 1528f414fcfe9f93ec62cc9dca0d404a71730a62 | |
parent | d763a70d681da267df19a8e37b0b8d2ef884ce31 (diff) |
cfg inter-bsc active
Change-Id: I452d13178f3c51754ec8285e5629f6efff1cd47f
-rw-r--r-- | include/osmocom/bsc/handover_cfg.h | 7 | ||||
-rw-r--r-- | src/osmo-bsc/handover_decision_2.c | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/osmocom/bsc/handover_cfg.h b/include/osmocom/bsc/handover_cfg.h index 865fab9bc..2ab318b2b 100644 --- a/include/osmocom/bsc/handover_cfg.h +++ b/include/osmocom/bsc/handover_cfg.h @@ -189,6 +189,13 @@ static inline const char *tdma2a(bool val) "Disable in-call assignment\n" \ "Enable in-call assignment\n") \ \ + HO_CFG_ONE_MEMBER(bool, hodec2_inter_bsc_active, 1, \ + "handover2 ", "inter-bsc-ho", "0|1", a2bool, "%d", bool2i, \ + HO_CFG_STR_HANDOVER2 \ + "Enable or disable handover to remote-BSS" HO_CFG_STR_2 \ + "Disable inter-BSC handover from this cell\n" \ + "Enable inter-BSC handover from this cell (if remote neighbors are configured)\n") \ + \ HO_CFG_ONE_MEMBER(bool, hodec2_full_tdma, subset, \ "handover2 ", "tdma-measurement", "full|subset", a2tdma, "%s", tdma2a, \ HO_CFG_STR_HANDOVER2 \ diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index a8fff6319..60b14b0b2 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -625,9 +625,17 @@ static uint8_t check_requirements_remote_bss(struct gsm_lchan *lchan, { uint8_t requirement = 0; unsigned int penalty_time; + struct gsm_bts *current_bts = lchan->ts->trx->bts; /* Requirement A */ + /* the handover/assignment must not be disabled */ + if (!ho_get_hodec2_inter_bsc_active(current_bts->ho)) { + LOGPHOLCHANTOREMOTE(lchan, cil, LOGL_DEBUG, + "not a candidate, inter-BSC handover is disabled from this BTS\n"); + return 0; + } + /* the handover penalty timer must not run for this bts */ penalty_time = conn_penalty_time_remaining(lchan->conn, cil); if (penalty_time) { |