libgb: remove dependencies to openbsc/vty.h and openbsc/gsm_data.h

Rather than using openbsc internal data/functions, we now use only
internal and libosmocore-provided ones.
This commit is contained in:
Harald Welte 2012-06-16 16:54:06 +08:00
parent 4fcdd76073
commit 4f5883bc6e
5 changed files with 96 additions and 29 deletions

View File

@ -5,5 +5,5 @@ AM_CFLAGS=-Wall -fno-strict-aliasing $(LIBOSMOCORE_CFLAGS) \
noinst_LIBRARIES = libgb.a
libgb_a_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c \
gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_bss.c
#gprs_llc.c gprs_llc_vty.c crc24.c
gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \
gprs_bssgp_bss.c common_vty.c

View File

@ -0,0 +1,63 @@
/* OpenBSC VTY common helpers */
/* (C) 2009-2012 by Harald Welte <laforge@gnumonks.org>
* (C) 2009-2010 by Holger Hans Peter Freyther
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include <stdlib.h>
#include <string.h>
#include <osmocom/core/talloc.h>
#include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/command.h>
#include <osmocom/vty/buffer.h>
#include <osmocom/vty/vty.h>
/* Down vty node level. */
gDEFUN(libgb_exit,
libgb_exit_cmd, "exit", "Exit current mode and down to previous mode\n")
{
switch (vty->node) {
case L_NS_NODE:
case L_BSSGP_NODE:
vty->node = CONFIG_NODE;
vty->index = NULL;
break;
default:
break;
}
return CMD_SUCCESS;
}
/* End of configuration. */
gDEFUN(libgb_end,
libgb_end_cmd, "end", "End current mode and change to enable mode.")
{
switch (vty->node) {
case L_NS_NODE:
case L_BSSGP_NODE:
vty_config_unlock(vty);
vty->node = ENABLE_NODE;
vty->index = NULL;
vty->index_sub = NULL;
break;
default:
break;
}
return CMD_SUCCESS;
}

View File

@ -0,0 +1,5 @@
#include <osmocom/vty/command.h>
extern struct cmd_element libgb_exit_cmd;
extern struct cmd_element libgb_end_cmd;

View File

@ -40,10 +40,9 @@
#include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h>
#include <openbsc/vty.h>
#include <openbsc/gsm_data.h>
#include <openbsc/debug.h>
#include "common_vty.h"
/* FIXME: this should go to some common file as it is copied
* in vty_interface.c of the BSC */
@ -52,7 +51,7 @@ static const struct value_string gprs_bssgp_timer_strs[] = {
};
static struct cmd_node bssgp_node = {
BSSGP_NODE,
L_BSSGP_NODE,
"%s(bssgp)#",
1,
};
@ -68,7 +67,7 @@ DEFUN(cfg_bssgp, cfg_bssgp_cmd,
"bssgp",
"Configure the GPRS BSS Gateway Protocol")
{
vty->node = BSSGP_NODE;
vty->node = L_BSSGP_NODE;
return CMD_SUCCESS;
}
@ -169,10 +168,10 @@ int gprs_bssgp_vty_init(void)
install_element(CONFIG_NODE, &cfg_bssgp_cmd);
install_node(&bssgp_node, config_write_bssgp);
install_default(BSSGP_NODE);
install_element(BSSGP_NODE, &ournode_exit_cmd);
install_element(BSSGP_NODE, &ournode_end_cmd);
//install_element(BSSGP_NODE, &cfg_bssgp_timer_cmd);
install_default(L_BSSGP_NODE);
install_element(L_BSSGP_NODE, &libgb_exit_cmd);
install_element(L_BSSGP_NODE, &libgb_end_cmd);
//install_element(L_BSSGP_NODE, &cfg_bssgp_timer_cmd);
return 0;
}

View File

@ -40,9 +40,9 @@
#include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h>
#include <openbsc/gsm_data.h>
#include <openbsc/debug.h>
#include <openbsc/vty.h>
#include "common_vty.h"
static struct gprs_ns_inst *vty_nsi = NULL;
@ -60,7 +60,7 @@ static const struct value_string gprs_ns_timer_strs[] = {
};
static struct cmd_node ns_node = {
NS_NODE,
L_NS_NODE,
"%s(ns)#",
1,
};
@ -137,7 +137,7 @@ DEFUN(cfg_ns, cfg_ns_cmd,
"ns",
"Configure the GPRS Network Service")
{
vty->node = NS_NODE;
vty->node = L_NS_NODE;
return CMD_SUCCESS;
}
@ -549,21 +549,21 @@ int gprs_ns_vty_init(struct gprs_ns_inst *nsi)
install_element(CONFIG_NODE, &cfg_ns_cmd);
install_node(&ns_node, config_write_ns);
install_default(NS_NODE);
install_element(NS_NODE, &ournode_exit_cmd);
install_element(NS_NODE, &ournode_end_cmd);
install_element(NS_NODE, &cfg_nse_nsvci_cmd);
install_element(NS_NODE, &cfg_nse_remoteip_cmd);
install_element(NS_NODE, &cfg_nse_remoteport_cmd);
install_element(NS_NODE, &cfg_nse_fr_dlci_cmd);
install_element(NS_NODE, &cfg_nse_encaps_cmd);
install_element(NS_NODE, &cfg_nse_remoterole_cmd);
install_element(NS_NODE, &cfg_no_nse_cmd);
install_element(NS_NODE, &cfg_ns_timer_cmd);
install_element(NS_NODE, &cfg_nsip_local_ip_cmd);
install_element(NS_NODE, &cfg_nsip_local_port_cmd);
install_element(NS_NODE, &cfg_frgre_enable_cmd);
install_element(NS_NODE, &cfg_frgre_local_ip_cmd);
install_default(L_NS_NODE);
install_element(L_NS_NODE, &libgb_exit_cmd);
install_element(L_NS_NODE, &libgb_end_cmd);
install_element(L_NS_NODE, &cfg_nse_nsvci_cmd);
install_element(L_NS_NODE, &cfg_nse_remoteip_cmd);
install_element(L_NS_NODE, &cfg_nse_remoteport_cmd);
install_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd);
install_element(L_NS_NODE, &cfg_nse_encaps_cmd);
install_element(L_NS_NODE, &cfg_nse_remoterole_cmd);
install_element(L_NS_NODE, &cfg_no_nse_cmd);
install_element(L_NS_NODE, &cfg_ns_timer_cmd);
install_element(L_NS_NODE, &cfg_nsip_local_ip_cmd);
install_element(L_NS_NODE, &cfg_nsip_local_port_cmd);
install_element(L_NS_NODE, &cfg_frgre_enable_cmd);
install_element(L_NS_NODE, &cfg_frgre_local_ip_cmd);
install_element(ENABLE_NODE, &nsvc_nsei_cmd);