aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/handover_cfg.h
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-12-07 03:54:01 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-01-12 05:26:30 +0100
commit20c1d61a23da869eed49db0c8f901d8f61fff5bd (patch)
tree8791b456ca01002b150ca837ff7096eb0e4bbf41 /include/osmocom/bsc/handover_cfg.h
parent5fd11987629984a7b31c40d2312bebf48eca6341 (diff)
HO: Implement load based handover, as handover_decision_2.c
Diffstat (limited to 'include/osmocom/bsc/handover_cfg.h')
-rw-r--r--include/osmocom/bsc/handover_cfg.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/osmocom/bsc/handover_cfg.h b/include/osmocom/bsc/handover_cfg.h
index b5a0d1b7d..ff73fa328 100644
--- a/include/osmocom/bsc/handover_cfg.h
+++ b/include/osmocom/bsc/handover_cfg.h
@@ -20,6 +20,13 @@ struct handover_cfg *ho_cfg_init(void *ctx, enum handover_cfg_ctx_type ctx_type,
typedef void (*ho_cfg_on_change_cb_t)(void *ctx, enum handover_cfg_ctx_type ctx_type);
+/* ho_cfg_* code gets called during initialization of the global gsm_network struct, which is included in
+ * various utility programs that don't need most of gsm_data.c, definitely no handover. The on_change
+ * callback from the ho_cfg touches internals of the handover decision, which would cause utility
+ * programs to require linking of most of the handover code. To break this linking cascade, have the
+ * on_change callbacks as function pointers. */
+extern ho_cfg_on_change_cb_t ho_cfg_on_change_congestion_check_interval_cb;
+
#define HO_CFG_STR_HANDOVER "Handover options\n"
#define HO_CFG_STR_WIN HO_CFG_STR_HANDOVER "Measurement averaging settings\n"
#define HO_CFG_STR_WIN_RXLEV HO_CFG_STR_WIN "Received-Level averaging\n"
@@ -157,7 +164,8 @@ static inline const char *congestion_check_interval2a(int val)
"Disable in-call assignment\n" \
"Enable in-call assignment\n") \
\
- HO_CFG_ONE_MEMBER(int, congestion_check_interval, 10, NULL, \
+ HO_CFG_ONE_MEMBER(int, congestion_check_interval, 10, \
+ ho_cfg_on_change_congestion_check_interval_cb, \
"handover congestion-check", "disabled|<1-60>", \
a2congestion_check_interval, "%s", congestion_check_interval2a, \
HO_CFG_STR_HANDOVER \