aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/load_indication.c11
-rw-r--r--src/common/oml.c4
2 files changed, 9 insertions, 6 deletions
diff --git a/src/common/load_indication.c b/src/common/load_indication.c
index a445ecb1..4756d5ad 100644
--- a/src/common/load_indication.c
+++ b/src/common/load_indication.c
@@ -85,11 +85,12 @@ void load_timer_start(struct gsm_bts *bts)
{
struct gsm_bts_role_bts *btsb = bts_role_bts(bts);
- btsb->load.ccch.timer.data = bts;
- btsb->load.ccch.timer.cb = load_timer_cb;
- reset_load_counters(bts);
- osmo_timer_schedule(&btsb->load.ccch.timer,
- btsb->load.ccch.load_ind_period, 0);
+ if (!btsb->load.ccch.timer.data) {
+ btsb->load.ccch.timer.data = bts;
+ btsb->load.ccch.timer.cb = load_timer_cb;
+ reset_load_counters(bts);
+ }
+ osmo_timer_schedule(&btsb->load.ccch.timer, btsb->load.ccch.load_ind_period, 0);
}
void load_timer_stop(struct gsm_bts *bts)
diff --git a/src/common/oml.c b/src/common/oml.c
index 00b85f1c..75c23477 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -695,8 +695,10 @@ static int oml_rx_set_bts_attr(struct gsm_bts *bts, struct msgb *msg)
btsb->load.ccch.load_ind_thresh = *TLVP_VAL(&tp, NM_ATT_CCCH_L_T);
/* 9.4.11 CCCH Load Indication Period */
- if (TLVP_PRES_LEN(&tp, NM_ATT_CCCH_L_I_P, 1))
+ if (TLVP_PRES_LEN(&tp, NM_ATT_CCCH_L_I_P, 1)) {
btsb->load.ccch.load_ind_period = *TLVP_VAL(&tp, NM_ATT_CCCH_L_I_P);
+ load_timer_start(bts);
+ }
/* 9.4.44 RACH Busy Threshold */
if (TLVP_PRES_LEN(&tp, NM_ATT_RACH_B_THRESH, 1)) {