aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/vty_interface_layer3.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/vty_interface_layer3.c')
-rw-r--r--openbsc/src/vty_interface_layer3.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index 029f0c4ab..5aa24d3c2 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -51,6 +51,20 @@ struct cmd_node subscr_node = {
1,
};
+/* Down vty node level. */
+DEFUN(subscr_node_exit,
+ subscr_node_exit_cmd, "exit", "Exit current mode and down to previous mode\n")
+{
+ switch (vty->node) {
+ case SUBSCR_NODE:
+ vty->node = VIEW_NODE;
+ subscr_put(vty->index);
+ vty->index = NULL;
+ break;
+ }
+ return CMD_SUCCESS;
+}
+
static int dummy_config_write(struct vty *v)
{
return CMD_SUCCESS;
@@ -542,6 +556,7 @@ int bsc_vty_init_extra(struct gsm_network *net)
install_node(&subscr_node, dummy_config_write);
install_default(SUBSCR_NODE);
+ install_element(SUBSCR_NODE, &subscr_node_exit_cmd);
install_element(SUBSCR_NODE, &cfg_subscr_name_cmd);
install_element(SUBSCR_NODE, &cfg_subscr_extension_cmd);
install_element(SUBSCR_NODE, &cfg_subscr_authorized_cmd);