diff options
author | Stefan Sperling <ssperling@sysmocom.de> | 2018-02-06 19:06:34 +0100 |
---|---|---|
committer | Stefan Sperling <ssperling@sysmocom.de> | 2018-02-06 19:06:34 +0100 |
commit | 0d7967eff7d89ff2fd23cf7f96d229fa6f4a1657 (patch) | |
tree | 3ef716f4f616f2e6dc9ab5a539009f71f166143b /src/libbsc | |
parent | 9992b07d41880acfc5c44775c5c04a8ac48ebbf7 (diff) |
make it possible to enable/disable rumping at startup
Change-Id: If72dd56d376d4ce0a362896e44b350d3b251b507
Diffstat (limited to 'src/libbsc')
-rw-r--r-- | src/libbsc/acc_ramp.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/libbsc/acc_ramp.c b/src/libbsc/acc_ramp.c index 3f83d1e1d..a84b704f1 100644 --- a/src/libbsc/acc_ramp.c +++ b/src/libbsc/acc_ramp.c @@ -76,12 +76,16 @@ static unsigned int get_next_step_interval(struct acc_ramp *acc_ramp) static void update_bts_rach_control(struct acc_ramp *acc_ramp) { struct gsm_bts *bts = acc_ramp->bts; - struct gsm_bts_trx *trx; /* Update RACH control parameters of this BTS. */ bts->si_common.rach_control.t2 &= ~0x03; bts->si_common.rach_control.t2 |= acc_ramp_get_barred_t2(acc_ramp); bts->si_common.rach_control.t3 = acc_ramp_get_barred_t3(acc_ramp); +} + +static void send_bts_system_info(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; /* Send updated system information to all TRX. */ llist_for_each_entry_reverse(trx, &bts->trx_list, list) @@ -119,6 +123,7 @@ static void do_ramping_step(void *data) update_bts_rach_control(acc_ramp); + send_bts_system_info(acc_ramp->bts); /* If we have not allowed all ACCs yet, schedule another ramping step. */ if (acc_ramp_get_barred_t2(acc_ramp) != 0x00 || @@ -126,14 +131,19 @@ static void do_ramping_step(void *data) osmo_timer_schedule(&acc_ramp->step_timer, get_next_step_interval(acc_ramp), 0); } -void acc_ramp_init(struct acc_ramp *acc_ramp, struct gsm_bts *bts) +void acc_ramp_init(struct acc_ramp *acc_ramp, struct gsm_bts *bts, bool ramping_enabled) { acc_ramp->bts = bts; - allow_all_accs(acc_ramp); acc_ramp->step_size = ACC_RAMP_STEP_SIZE_DEFAULT; acc_ramp->step_interval_sec = ACC_RAMP_STEP_INTERVAL_DEFAULT; acc_ramp->step_interval_is_fixed = false; osmo_timer_setup(&acc_ramp->step_timer, do_ramping_step, acc_ramp); + + if (ramping_enabled) + deny_all_accs(acc_ramp); + else + allow_all_accs(acc_ramp); + update_bts_rach_control(acc_ramp); } int acc_ramp_set_step_size(struct acc_ramp *acc_ramp, enum acc_ramp_step_size step_size) |