aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/msc_vty.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-12-05 01:11:28 +0100
committerHarald Welte <laforge@gnumonks.org>2018-12-05 19:35:11 +0000
commit80447ebe6c372821319c78e2fae55b98c8e16e40 (patch)
tree39535cb7ad04c9929b3329481a516fea6c4f4192 /src/libmsc/msc_vty.c
parent05c5680ba16c9a393595e03249a0c5bf4bec0033 (diff)
add VTY commands: mncc internal / external (== -M)
So far the only way to use external MNCC is to pass the -M cmdline arg: osmo-msc -M /path/to/socket However, the osmo-msc.service file for systemd is installed by 'make install', and hence it is quite impractical to depend on such a config item to be required in the service file: - It defies any scheme an operator may have in place to compose the osmo-msc.cfg file -- this option doesn't go in the .cfg file but needs separate action to add to the installed service file. - After a make install or package upgrades / re-installations, this option will be plain overwritten silently, or lead to the need for resolving file conflicts. The initial spark for this came from configuring the 35c3 GSM from cfg templates. Change-Id: I2ec59d5eba407f83295528b51b93678d446b9cee
Diffstat (limited to 'src/libmsc/msc_vty.c')
-rw-r--r--src/libmsc/msc_vty.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index d9e57a73b..e1d1b4020 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -339,6 +339,25 @@ DEFUN(cfg_msc, cfg_msc_cmd,
#define MNCC_GUARD_TIMEOUT_STR "Set global guard timer for mncc interface activity\n"
#define MNCC_GUARD_TIMEOUT_VALUE_STR "guard timer value (sec.)\n"
+DEFUN(cfg_msc_mncc_internal,
+ cfg_msc_mncc_internal_cmd,
+ "mncc internal",
+ MNCC_STR "Use internal MNCC handler (default; changes need a program restart)\n")
+{
+ gsm_network_set_mncc_sock_path(gsmnet, NULL);
+ return CMD_SUCCESS;
+}
+
+DEFUN(cfg_msc_mncc_external,
+ cfg_msc_mncc_external_cmd,
+ "mncc external MNCC_SOCKET_PATH",
+ MNCC_STR "Use external MNCC handler (changes need a program restart)\n"
+ "File system path to create the MNCC unix domain socket at\n")
+{
+ gsm_network_set_mncc_sock_path(gsmnet, argv[0]);
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_msc_mncc_guard_timeout,
cfg_msc_mncc_guard_timeout_cmd,
"mncc guard-timeout <0-255>",
@@ -442,6 +461,8 @@ DEFUN(cfg_msc_emergency_msisdn, cfg_msc_emergency_msisdn_cmd,
static int config_write_msc(struct vty *vty)
{
vty_out(vty, "msc%s", VTY_NEWLINE);
+ if (gsmnet->mncc_sock_path)
+ vty_out(vty, " mncc external %s%s", gsmnet->mncc_sock_path, VTY_NEWLINE);
vty_out(vty, " mncc guard-timeout %i%s",
gsmnet->mncc_guard_timeout, VTY_NEWLINE);
vty_out(vty, " %sassign-tmsi%s",
@@ -1451,6 +1472,8 @@ void msc_vty_init(struct gsm_network *msc_network)
install_element(CONFIG_NODE, &cfg_msc_cmd);
install_node(&msc_node, config_write_msc);
install_element(MSC_NODE, &cfg_msc_assign_tmsi_cmd);
+ install_element(MSC_NODE, &cfg_msc_mncc_internal_cmd);
+ install_element(MSC_NODE, &cfg_msc_mncc_external_cmd);
install_element(MSC_NODE, &cfg_msc_mncc_guard_timeout_cmd);
install_element(MSC_NODE, &cfg_msc_deprecated_mncc_guard_timeout_cmd);
install_element(MSC_NODE, &cfg_msc_no_assign_tmsi_cmd);