diff --git a/src/hlr_vty.c b/src/hlr_vty.c
index e4eef8f..946117e 100644
--- a/src/hlr_vty.c
+++ b/src/hlr_vty.c
@@ -20,12 +20,94 @@
  *
  */
 
+#include <osmocom/core/talloc.h>
 #include <osmocom/vty/vty.h>
 #include <osmocom/vty/command.h>
 #include <osmocom/vty/logging.h>
 
 #include "hlr_vty.h"
 
+static struct hlr *g_hlr = NULL;
+
+struct cmd_node hlr_node = {
+	HLR_NODE,
+	"%s(config-hlr)# ",
+	1,
+};
+
+DEFUN(cfg_hlr,
+      cfg_hlr_cmd,
+      "hlr",
+      "Configure the HLR")
+{
+	vty->node = HLR_NODE;
+	return CMD_SUCCESS;
+}
+
+struct cmd_node gsup_node = {
+	GSUP_NODE,
+	"%s(config-hlr-gsup)# ",
+	1,
+};
+
+DEFUN(cfg_gsup,
+      cfg_gsup_cmd,
+      "gsup",
+      "Configure GSUP options")
+{
+	vty->node = GSUP_NODE;
+	return CMD_SUCCESS;
+}
+
+static int config_write_hlr(struct vty *vty)
+{
+	vty_out(vty, "hlr%s", VTY_NEWLINE);
+	return CMD_SUCCESS;
+}
+
+static int config_write_hlr_gsup(struct vty *vty)
+{
+	vty_out(vty, " gsup%s", VTY_NEWLINE);
+	if (g_hlr->gsup_bind_addr)
+		vty_out(vty, "  bind ip %s%s", g_hlr->gsup_bind_addr, VTY_NEWLINE);
+	return CMD_SUCCESS;
+}
+
+DEFUN(cfg_hlr_gsup_bind_ip,
+      cfg_hlr_gsup_bind_ip_cmd,
+      "bind ip A.B.C.D",
+      "Listen/Bind related socket option\n"
+      IP_STR
+      "IPv4 Address to bind the GSUP interface to\n")
+{
+	if(g_hlr->gsup_bind_addr)
+		talloc_free(g_hlr->gsup_bind_addr);
+	g_hlr->gsup_bind_addr = talloc_strdup(g_hlr, argv[0]);
+
+	return CMD_SUCCESS;
+}
+
+int hlr_vty_go_parent(struct vty *vty)
+{
+	switch (vty->node) {
+	case GSUP_NODE:
+		vty->node = HLR_NODE;
+		vty->index = NULL;
+		break;
+	default:
+	case HLR_NODE:
+		vty->node = CONFIG_NODE;
+		vty->index = NULL;
+		break;
+	case CONFIG_NODE:
+		vty->node = ENABLE_NODE;
+		vty->index = NULL;
+		break;
+	}
+
+	return vty->node;
+}
+
 int hlr_vty_is_config_node(struct vty *vty, int node)
 {
 	switch (node) {
@@ -38,7 +120,19 @@
 	}
 }
 
-void hlr_vty_init(const struct log_info *cat)
+void hlr_vty_init(struct hlr *hlr, const struct log_info *cat)
 {
+	g_hlr = hlr;
+
 	logging_vty_add_cmds(cat);
+
+	install_element(CONFIG_NODE, &cfg_hlr_cmd);
+	install_node(&hlr_node, config_write_hlr);
+	install_default(HLR_NODE);
+
+	install_element(HLR_NODE, &cfg_gsup_cmd);
+	install_node(&gsup_node, config_write_hlr_gsup);
+	install_default(GSUP_NODE);
+
+	install_element(GSUP_NODE, &cfg_hlr_gsup_bind_ip_cmd);
 }
