aboutsummaryrefslogtreecommitdiffstats
path: root/src/hlr_vty_subscr.c
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2019-07-15 10:35:22 +0200
committerOliver Smith <osmith@sysmocom.de>2019-07-15 14:13:46 +0200
commit3b33b01fb039817b49c9c8c06bd33650dc5e4a7a (patch)
treecf7350749ff13cad6c51be27ae836bb482cd2a3e /src/hlr_vty_subscr.c
parent78abea6a0e4824cb8e5baa770012c41524fa81dd (diff)
VTY: add subscriber update network-access-mode
Allow updating the NAM (Network Access Mode) of subscribers with the VTY. This is important for the subscriber create on demand use case where subscribers get created without access to PS and CS NAM by default. Regenerate hlr_vty_reference.xml. Related: OS#2542 Change-Id: I231e03219355ebe6467d62ae2e40bef9d8303e3b
Diffstat (limited to 'src/hlr_vty_subscr.c')
-rw-r--r--src/hlr_vty_subscr.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c
index 3078577..73dfab6 100644
--- a/src/hlr_vty_subscr.c
+++ b/src/hlr_vty_subscr.c
@@ -577,6 +577,33 @@ DEFUN(subscriber_imei,
return CMD_SUCCESS;
}
+DEFUN(subscriber_nam,
+ subscriber_nam_cmd,
+ SUBSCR_UPDATE "network-access-mode (none|cs|ps|cs+ps)",
+ SUBSCR_UPDATE_HELP
+ "Set Network Access Mode (NAM) of the subscriber\n"
+ "Do not allow access to circuit switched or packet switched services\n"
+ "Allow access to circuit switched services only\n"
+ "Allow access to packet switched services only\n"
+ "Allow access to both circuit and packet switched services\n")
+{
+ struct hlr_subscriber subscr;
+ const char *id_type = argv[0];
+ const char *id = argv[1];
+ bool nam_cs = strstr(argv[2], "cs");
+ bool nam_ps = strstr(argv[2], "ps");
+
+ if (get_subscr_by_argv(vty, id_type, id, &subscr))
+ return CMD_WARNING;
+
+ if (nam_cs != subscr.nam_cs)
+ hlr_subscr_nam(g_hlr, &subscr, nam_cs, 0);
+ if (nam_ps != subscr.nam_ps)
+ hlr_subscr_nam(g_hlr, &subscr, nam_ps, 1);
+
+ return CMD_SUCCESS;
+}
+
void hlr_vty_subscriber_init(void)
{
@@ -590,4 +617,5 @@ void hlr_vty_subscriber_init(void)
install_element(ENABLE_NODE, &subscriber_no_aud3g_cmd);
install_element(ENABLE_NODE, &subscriber_aud3g_cmd);
install_element(ENABLE_NODE, &subscriber_imei_cmd);
+ install_element(ENABLE_NODE, &subscriber_nam_cmd);
}