diff --git a/openbsc/src/libgb/gprs_ns_vty.c b/openbsc/src/libgb/gprs_ns_vty.c
index 2f0b70a..fac431c 100644
--- a/openbsc/src/libgb/gprs_ns_vty.c
+++ b/openbsc/src/libgb/gprs_ns_vty.c
@@ -57,6 +57,18 @@
 	{ 0, NULL }
 };
 
+static void log_set_nsvc_filter(struct log_target *target,
+				struct gprs_nsvc *nsvc)
+{
+	if (nsvc) {
+		target->filter_map |= (1 << FLT_NSVC);
+		target->filter_data[FLT_NSVC] = nsvc;
+	} else if (target->filter_data[FLT_NSVC]) {
+		target->filter_map = ~(1 << FLT_NSVC);
+		target->filter_data[FLT_NSVC] = NULL;
+	}
+}
+
 static struct cmd_node ns_node = {
 	L_NS_NODE,
 	"%s(ns)#",
@@ -207,9 +219,9 @@
 	int show_stats = 0;
 
 	if (!strcmp(argv[0], "nsei"))
-		nsvc = nsvc_by_nsei(nsi, id);
+		nsvc = gprs_nsvc_by_nsei(nsi, id);
 	else
-		nsvc = nsvc_by_nsvci(nsi, id);
+		nsvc = gprs_nsvc_by_nsvci(nsi, id);
 
 	if (!nsvc) {
 		vty_out(vty, "No such NS Entity%s", VTY_NEWLINE);
@@ -236,9 +248,9 @@
 	uint16_t nsvci = atoi(argv[1]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
-		nsvc = nsvc_create(vty_nsi, nsvci);
+		nsvc = gprs_nsvc_create(vty_nsi, nsvci);
 		nsvc->nsei = nsei;
 	}
 	nsvc->nsvci = nsvci;
@@ -259,7 +271,7 @@
 	uint16_t nsei = atoi(argv[0]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -280,7 +292,7 @@
 	uint16_t port = atoi(argv[1]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -307,7 +319,7 @@
 	uint16_t dlci = atoi(argv[1]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -333,7 +345,7 @@
 	uint16_t nsei = atoi(argv[0]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -358,7 +370,7 @@
 	uint16_t nsei = atoi(argv[0]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -380,7 +392,7 @@
 	uint16_t nsei = atoi(argv[0]);
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsei);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei);
 	if (!nsvc) {
 		vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -486,7 +498,7 @@
 	const char *operation = argv[1];
 	struct gprs_nsvc *nsvc;
 
-	nsvc = nsvc_by_nsei(vty_nsi, nsvci);
+	nsvc = gprs_nsvc_by_nsei(vty_nsi, nsvci);
 	if (!nsvc) {
 		vty_out(vty, "No such NSVCI (%u)%s", nsvci, VTY_NEWLINE);
 		return CMD_WARNING;
@@ -521,9 +533,9 @@
 		return CMD_WARNING;
 
 	if (!strcmp(argv[0], "nsei"))
-		nsvc = nsvc_by_nsei(vty_nsi, id);
+		nsvc = gprs_nsvc_by_nsei(vty_nsi, id);
 	else
-		nsvc = nsvc_by_nsvci(vty_nsi, id);
+		nsvc = gprs_nsvc_by_nsvci(vty_nsi, id);
 
 	if (!nsvc) {
 		vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE);
