From 925c57fb545b072159a831bff852c92795704dfe Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 27 Jan 2015 10:58:29 +0100 Subject: nitb: Make the last change configurable Introduce a NITB node and add the subscriber creation as config name in there. --- openbsc/src/libmsc/vty_interface_layer3.c | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'openbsc/src/libmsc') diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c index dec949412..97a2a098c 100644 --- a/openbsc/src/libmsc/vty_interface_layer3.c +++ b/openbsc/src/libmsc/vty_interface_layer3.c @@ -1053,6 +1053,47 @@ DEFUN(logging_fltr_imsi, log_set_imsi_filter(tgt, subscr); return CMD_SUCCESS; } + +static struct cmd_node nitb_node = { + NITB_NODE, + "%s(config-nitb)# ", + 1, +}; + +DEFUN(cfg_nitb, cfg_nitb_cmd, + "nitb", "Configure NITB options") +{ + vty->node = NITB_NODE; + return CMD_SUCCESS; +} + +DEFUN(cfg_nitb_subscr_create, cfg_nitb_subscr_create_cmd, + "subscriber-create-on-demand", + "Make a new record when a subscriber is first seen.\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + gsmnet->create_subscriber = 1; + return CMD_SUCCESS; +} + +DEFUN(cfg_nitb_no_subscr_create, cfg_nitb_no_subscr_create_cmd, + "no subscriber-create-on-demand", + NO_STR "Make a new record when a subscriber is first seen.\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + gsmnet->create_subscriber = 0; + return CMD_SUCCESS; +} + +static int config_write_nitb(struct vty *vty) +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + vty_out(vty, "nitb%s", VTY_NEWLINE); + vty_out(vty, " %ssubscriber-create-on-demand%s", + gsmnet->create_subscriber ? "" : "no ", VTY_NEWLINE); + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { osmo_signal_register_handler(SS_SCALL, scall_cbfn, NULL); @@ -1100,5 +1141,11 @@ int bsc_vty_init_extra(void) install_element(CFG_LOG_NODE, &log_level_sms_cmd); install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd); + + install_element(CONFIG_NODE, &cfg_nitb_cmd); + install_node(&nitb_node, config_write_nitb); + install_element(NITB_NODE, &cfg_nitb_subscr_create_cmd); + install_element(NITB_NODE, &cfg_nitb_no_subscr_create_cmd); + return 0; } -- cgit v1.2.3