diff --git a/openbsc/src/libgb/common_vty.c b/openbsc/src/libgb/common_vty.c
index a16e995..408dddf 100644
--- a/openbsc/src/libgb/common_vty.c
+++ b/openbsc/src/libgb/common_vty.c
@@ -28,6 +28,10 @@
 #include <osmocom/vty/buffer.h>
 #include <osmocom/vty/vty.h>
 
+#include <osmocom/gprs/gprs_msgb.h>
+
+#include "common_vty.h"
+
 /* Down vty node level. */
 gDEFUN(libgb_exit,
        libgb_exit_cmd, "exit", "Exit current mode and down to previous mode\n")
@@ -62,4 +66,24 @@
 	return CMD_SUCCESS;
 }
 
+int gprs_log_filter_fn(const struct log_context *ctx,
+			struct log_target *tar)
+{
+	const struct gprs_nsvc *nsvc = ctx->ctx[GPRS_CTX_NSVC];
+	const struct gprs_nsvc *bvc = ctx->ctx[GPRS_CTX_BVC];
+
+	/* Filter on the NS Virtual Connection */
+	if ((tar->filter_map & (1 << FLT_NSVC)) != 0
+	    && nsvc && (nsvc == tar->filter_data[FLT_NSVC]))
+		return 1;
+
+	/* Filter on the NS Virtual Connection */
+	if ((tar->filter_map & (1 << FLT_BVC)) != 0
+	    && bvc && (bvc == tar->filter_data[FLT_BVC]))
+		return 1;
+
+	return 0;
+}
+
+
 int DNS, DBSSGP;
diff --git a/openbsc/src/libgb/common_vty.h b/openbsc/src/libgb/common_vty.h
index 8c6b9ab..d8d0040 100644
--- a/openbsc/src/libgb/common_vty.h
+++ b/openbsc/src/libgb/common_vty.h
@@ -3,6 +3,12 @@
 
 extern int DNS, DBSSGP;
 
+enum log_filter {
+	_FLT_ALL = LOG_FILTER_ALL,	/* libosmocore */
+	FLT_NSVC = 1,
+	FLT_BVC  = 2,
+};
+
 extern struct cmd_element libgb_exit_cmd;
 extern struct cmd_element libgb_end_cmd;
 
diff --git a/openbsc/src/libgb/gprs_bssgp_vty.c b/openbsc/src/libgb/gprs_bssgp_vty.c
index ff1b8f5..49a90c3 100644
--- a/openbsc/src/libgb/gprs_bssgp_vty.c
+++ b/openbsc/src/libgb/gprs_bssgp_vty.c
@@ -48,6 +48,18 @@
 	{ 0, NULL }
 };
 
+static void log_set_bvc_filter(struct log_target *target,
+				struct bssgp_bvc_ctx *bctx)
+{
+	if (bctx) {
+		target->filter_map |= (1 << FLT_BVC);
+		target->filter_data[FLT_BVC] = bctx;
+	} else if (target->filter_data[FLT_NSVC]) {
+		target->filter_map = ~(1 << FLT_BVC);
+		target->filter_data[FLT_BVC] = NULL;
+	}
+}
+
 static struct cmd_node bssgp_node = {
 	L_BSSGP_NODE,
 	"%s(bssgp)#",
diff --git a/openbsc/src/libgb/gprs_ns.c b/openbsc/src/libgb/gprs_ns.c
index 04a7f10..cdee833 100644
--- a/openbsc/src/libgb/gprs_ns.c
+++ b/openbsc/src/libgb/gprs_ns.c
@@ -121,7 +121,7 @@
  *  \param[in] nsvci NSVCI to be searched
  *  \returns gprs_nsvc of respective NSVCI
  */
-struct gprs_nsvc *nsvc_by_nsvci(struct gprs_ns_inst *nsi, uint16_t nsvci)
+struct gprs_nsvc *gprs_nsvc_by_nsvci(struct gprs_ns_inst *nsi, uint16_t nsvci)
 {
 	struct gprs_nsvc *nsvc;
 	llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) {
@@ -136,7 +136,7 @@
  *  \param[in] nsei NSEI to be searched
  *  \returns gprs_nsvc of respective NSEI
  */
-struct gprs_nsvc *nsvc_by_nsei(struct gprs_ns_inst *nsi, uint16_t nsei)
+struct gprs_nsvc *gprs_nsvc_by_nsei(struct gprs_ns_inst *nsi, uint16_t nsei)
 {
 	struct gprs_nsvc *nsvc;
 	llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) {
@@ -162,7 +162,7 @@
 
 static void gprs_ns_timer_cb(void *data);
 
-struct gprs_nsvc *nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci)
+struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci)
 {
 	struct gprs_nsvc *nsvc;
 
@@ -185,7 +185,7 @@
 /*! \brief Delete given NS-VC
  *  \param[in] nsvc gprs_nsvc to be deleted
  */
-void nsvc_delete(struct gprs_nsvc *nsvc)
+void gprs_nsvc_delete(struct gprs_nsvc *nsvc)
 {
 	if (osmo_timer_pending(&nsvc->timer))
 		osmo_timer_del(&nsvc->timer);
@@ -557,7 +557,7 @@
 	struct gprs_ns_hdr *nsh;
 	uint16_t bvci = msgb_bvci(msg);
 
-	nsvc = nsvc_by_nsei(nsi, msgb_nsei(msg));
+	nsvc = gprs_nsvc_by_nsei(nsi, msgb_nsei(msg));
 	if (!nsvc) {
 		LOGP(DNS, LOGL_ERROR, "Unable to resolve NSEI %u "
 			"to NS-VC!\n", msgb_nsei(msg));
@@ -795,9 +795,9 @@
 		nsei = ntohs(*(uint16_t *)TLVP_VAL(&tp, NS_IE_NSEI));
 		/* Check if we already know this NSEI, the remote end might
 		 * simply have changed addresses, or it is a SGSN */
-		nsvc = nsvc_by_nsei(nsi, nsei);
+		nsvc = gprs_nsvc_by_nsei(nsi, nsei);
 		if (!nsvc) {
-			nsvc = nsvc_create(nsi, 0xffff);
+			nsvc = gprs_nsvc_create(nsi, 0xffff);
 			nsvc->ll = ll;
 			log_set_context(GPRS_CTX_NSVC, nsvc);
 			LOGP(DNS, LOGL_INFO, "Creating NS-VC for BSS at %s:%u\n",
@@ -909,7 +909,7 @@
 
 	/* Create the dummy NSVC that we use for sending
 	 * messages to non-existant/unknown NS-VC's */
-	nsi->unknown_nsvc = nsvc_create(nsi, 0xfffe);
+	nsi->unknown_nsvc = gprs_nsvc_create(nsi, 0xfffe);
 	llist_del(&nsi->unknown_nsvc->list);
 
 	return nsi;
@@ -1077,7 +1077,7 @@
  * This function will establish a single NS/UDP/IP connection in uplink
  * (BSS to SGSN) direction.
  */
-struct gprs_nsvc *nsip_connect(struct gprs_ns_inst *nsi,
+struct gprs_nsvc *gprs_ns_nsip_connect(struct gprs_ns_inst *nsi,
 				struct sockaddr_in *dest, uint16_t nsei,
 				uint16_t nsvci)
 {
@@ -1085,7 +1085,7 @@
 
 	nsvc = nsvc_by_rem_addr(nsi, dest);
 	if (!nsvc)
-		nsvc = nsvc_create(nsi, nsvci);
+		nsvc = gprs_nsvc_create(nsi, nsvci);
 	nsvc->ip.bts_addr = *dest;
 	nsvc->nsei = nsei;
 	nsvc->nsvci = nsvci;
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);
diff --git a/openbsc/src/libgb/libosmo-gb.map b/openbsc/src/libgb/libosmo-gb.map
index ab3c4ea..60f85b2 100644
--- a/openbsc/src/libgb/libosmo-gb.map
+++ b/openbsc/src/libgb/libosmo-gb.map
@@ -37,6 +37,7 @@
 gprs_ns_frgre_sendmsg;
 gprs_ns_instantiate;
 gprs_ns_nsip_listen;
+gprs_ns_nsip_connect;
 gprs_ns_rcvmsg;
 gprs_ns_sendmsg;
 gprs_ns_set_log_ss;
@@ -48,9 +49,12 @@
 gprs_ns_tx_unblock;
 gprs_ns_vty_init;
 
+gprs_nsvc_create;
+gprs_nsvc_delete;
 gprs_nsvc_reset;
+gprs_nsvc_by_nsvci;
+gprs_nsvc_by_nsei;
 
-nsip_connect;
 
 local: *;
 };
