From 9e96b2df12539363da373805adf414d48da30802 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 14 May 2010 00:39:19 +0800 Subject: rach: Allow to set the emergency call bit Add the rach emergency call allowed (0|1) setting and implement it by directly manipulating the t2 value. It is the third bit which is set to 0 when emergency calls are enabled and to one if it is only enabled for access classes 11 to 15. --- openbsc/src/vty_interface.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c index 6cb102649..10fa638f5 100644 --- a/openbsc/src/vty_interface.c +++ b/openbsc/src/vty_interface.c @@ -359,6 +359,8 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) bts->rach_ldavg_slots, VTY_NEWLINE); if (bts->si_common.rach_control.cell_bar) vty_out(vty, " cell barred 1%s", VTY_NEWLINE); + if ((bts->si_common.rach_control.t2 & 0x4) == 0) + vty_out(vty, " rach emergency call allowed 1%s", VTY_NEWLINE); if (is_ipaccess_bts(bts)) { vty_out(vty, " ip.access unit_id %u %u%s", bts->ip_access.site_id, bts->ip_access.bts_id, VTY_NEWLINE); @@ -1661,6 +1663,20 @@ DEFUN(cfg_bts_cell_barred, cfg_bts_cell_barred_cmd, return CMD_SUCCESS; } +DEFUN(cfg_bts_rach_ec_allowed, cfg_bts_rach_ec_allowed_cmd, + "rach emergency call allowed (0|1)", + "Should this cell allow emergency calls?") +{ + struct gsm_bts *bts = vty->index; + + if (atoi(argv[0]) == 0) + bts->si_common.rach_control.t2 |= 0x4; + else + bts->si_common.rach_control.t2 &= ~0x4; + + return CMD_SUCCESS; +} + DEFUN(cfg_bts_ms_max_power, cfg_bts_ms_max_power_cmd, "ms max power <0-40>", "Maximum transmit power of the MS") @@ -2111,6 +2127,7 @@ int bsc_vty_init(struct gsm_network *net) install_element(BTS_NODE, &cfg_bts_rach_nm_b_thresh_cmd); install_element(BTS_NODE, &cfg_bts_rach_nm_ldavg_cmd); install_element(BTS_NODE, &cfg_bts_cell_barred_cmd); + install_element(BTS_NODE, &cfg_bts_rach_ec_allowed_cmd); install_element(BTS_NODE, &cfg_bts_ms_max_power_cmd); install_element(BTS_NODE, &cfg_bts_per_loc_upd_cmd); install_element(BTS_NODE, &cfg_bts_cell_resel_hyst_cmd); -- cgit v1.2.3