Index: uspace/lib/nic/src/nic_driver.c
===================================================================
--- uspace/lib/nic/src/nic_driver.c	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/lib/nic/src/nic_driver.c	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -523,5 +523,5 @@
 	 * 		 calls it inside send_frame handler (with locked main lock)
 	 */
-	pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size);
+	//pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size);
 	fibril_rwlock_read_lock(&nic_data->rxc_lock);
 	nic_frame_type_t frame_type;
@@ -651,8 +651,8 @@
 	nic_data->dev = device;
 
-	errno_t pcap_rc  = pcapdump_init(nic_get_pcap_iface(nic_data));
-	if (pcap_rc != EOK) {
-		printf("Failed creating pcapdump port\n");
-	}
+	// errno_t pcap_rc  = pcapdump_init(nic_get_pcap_iface(nic_data));
+	// if (pcap_rc != EOK) {
+	// 	printf("Failed creating pcapdump port\n");
+	// }
 
 	return nic_data;
Index: uspace/lib/nic/src/nic_impl.c
===================================================================
--- uspace/lib/nic/src/nic_impl.c	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/lib/nic/src/nic_impl.c	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -180,5 +180,5 @@
 		return EBUSY;
 	}
-	pcapdump_packet(nic_get_pcap_iface(nic_data), data, size);
+	//pcapdump_packet(nic_get_pcap_iface(nic_data), data, size);
 	nic_data->send_frame(nic_data, data, size);
 	fibril_rwlock_read_unlock(&nic_data->main_lock);
@@ -849,16 +849,11 @@
 	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
 	if (rc != EOK)
-		goto err_add_to_cat;
-
-	rc = ddf_fun_add_to_category(fun, "pcap");
-	if (rc != EOK) {
-		//ddf_msg(LVL_ERROR, "Failed adding function to category pcap");
-		goto err_add_to_cat;
-	}
-	return EOK;
-
-err_add_to_cat:
-	ddf_fun_unbind(fun);
-	return rc;
+		return rc;
+
+	// rc = ddf_fun_add_to_category(fun, "pcap");
+	// if (rc != EOK) {
+	// 	return rc;
+	// }
+	return EOK;
 }
 
Index: uspace/lib/pcap/include/pcapdump_iface.h
===================================================================
--- uspace/lib/pcap/include/pcapdump_iface.h	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/lib/pcap/include/pcapdump_iface.h	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -51,4 +51,5 @@
 extern void pcapdump_packet(pcap_iface_t *, const void *, size_t);
 
+extern void pcapdump_conn(ipc_call_t *, void *);
 #endif
 
Index: uspace/lib/pcap/src/pcapctl_dump.c
===================================================================
--- uspace/lib/pcap/src/pcapctl_dump.c	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/lib/pcap/src/pcapctl_dump.c	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -52,31 +52,31 @@
 }
 
-static errno_t pcapctl_cat_get_svc(int *index, service_id_t *svc)
-{
-	errno_t rc;
-	category_id_t pcap_cat;
-	size_t count;
-	service_id_t *pcap_svcs = NULL;
-
-	rc = loc_category_get_id("pcap", &pcap_cat, 0);
-	if (rc != EOK) {
-		printf("Error resolving category 'pcap'.\n");
-		return rc;
-	}
-
-	rc = loc_category_get_svcs(pcap_cat, &pcap_svcs, &count);
-	if (rc != EOK) {
-		printf("Error resolving list of pcap services.\n");
-		free(pcap_svcs);
-		return rc;
-	}
-	if (*index < (int)count) {
-		*svc =  pcap_svcs[*index];
-		free(pcap_svcs);
-		return EOK;
-	}
-
-	return ENOENT;
-}
+// static errno_t pcapctl_cat_get_svc(int *index, service_id_t *svc)
+// {
+// 	errno_t rc;
+// 	category_id_t pcap_cat;
+// 	size_t count;
+// 	service_id_t *pcap_svcs = NULL;
+
+// 	rc = loc_category_get_id("pcap", &pcap_cat, 0);
+// 	if (rc != EOK) {
+// 		printf("Error resolving category 'pcap'.\n");
+// 		return rc;
+// 	}
+
+// 	rc = loc_category_get_svcs(pcap_cat, &pcap_svcs, &count);
+// 	if (rc != EOK) {
+// 		printf("Error resolving list of pcap services.\n");
+// 		free(pcap_svcs);
+// 		return rc;
+// 	}
+// 	if (*index < (int)count) {
+// 		*svc =  pcap_svcs[*index];
+// 		free(pcap_svcs);
+// 		return EOK;
+// 	}
+
+// 	return ENOENT;
+// }
 
 errno_t pcapctl_is_valid_device(int *index)
@@ -149,9 +149,13 @@
 		return ENOMEM;
 
-	rc  = pcapctl_cat_get_svc(index, &svc);
-	if (rc != EOK) {
-		printf("Error finding the device with index: %d\n", *index);
-		goto error;
-	}
+	// rc  = pcapctl_cat_get_svc(index, &svc);
+	// if (rc != EOK) {
+	// 	printf("Error finding the device with index: %d\n", *index);
+	// 	goto error;
+	// }
+
+	rc = loc_service_get_id("net/inet", &svc, 0);
+	if (rc != EOK)
+		return ENOENT;
 
 	async_sess_t *new_session = loc_service_connect(svc, INTERFACE_PCAP_CONTROL, 0);
@@ -161,4 +165,5 @@
 		goto error;
 	}
+	printf("got new session\n");
 	sess->sess = new_session;
 	*rsess = sess;
@@ -186,4 +191,5 @@
 errno_t pcapctl_dump_start(const char *name, pcapctl_sess_t *sess)
 {
+	printf("pcapctl_dump_start\n");
 	errno_t rc;
 	async_exch_t *exch = async_exchange_begin(sess->sess);
Index: uspace/lib/pcap/src/pcapdump_iface.c
===================================================================
--- uspace/lib/pcap/src/pcapdump_iface.c	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/lib/pcap/src/pcapdump_iface.c	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -83,8 +83,8 @@
 }
 
-static void pcapdump_conn(ipc_call_t *icall, void *arg)
+void pcapdump_conn(ipc_call_t *icall, void *arg)
 {
 	pcap_iface_t *iface = (pcap_iface_t *)arg;
-
+	printf("pcapdump_conn\n");
 	assert((iface != NULL) && "pcapdump requires pcap interface\n");
 
Index: uspace/srv/net/inetsrv/inetsrv.c
===================================================================
--- uspace/srv/net/inetsrv/inetsrv.c	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/srv/net/inetsrv/inetsrv.c	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -49,4 +49,5 @@
 #include <stdint.h>
 #include <task.h>
+#include <pcapdump_iface.h>
 #include "addrobj.h"
 #include "icmp.h"
@@ -63,4 +64,7 @@
 #define NAME "inetsrv"
 
+/** Interface for dumping packets */
+pcap_iface_t pcapdump;
+
 static inet_naddr_t solicited_node_mask = {
 	.version = ip_v6,
@@ -117,5 +121,9 @@
 	if (rc != EOK)
 		return rc;
-
+	rc = async_create_port(INTERFACE_PCAP_CONTROL,
+	    pcapdump_conn, &pcapdump, &port);
+	if (rc != EOK) {
+		return rc;
+	}
 	rc = loc_server_register(NAME, &srv);
 	if (rc != EOK) {
@@ -202,5 +210,6 @@
 		    dgram->dest.addr, dgram, proto, ttl, df);
 	}
-
+	printf("SENDING: packet size is - %d\n", dgram->size);
+	pcapdump_packet(&pcapdump, dgram->data, dgram->size);
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram to be routed");
 
@@ -541,5 +550,6 @@
 			dgram.data = packet->data;
 			dgram.size = packet->size;
-
+			printf("RECEIVING: packet size is - %d\n", packet->size);
+			pcapdump_packet(&pcapdump, packet->data, packet->size);
 			return inet_recv_dgram_local(&dgram, packet->proto);
 		} else {
@@ -562,9 +572,15 @@
 		return 1;
 	}
-
+	rc = pcap_iface_init(&pcapdump);
+
+	if (rc != EOK) {
+		printf("Failed creating pcap interface: %s", str_error(rc));
+		return rc;
+	}
 	rc = inet_init();
 	if (rc != EOK)
 		return 1;
 
+	printf(NAME ": Initialized dump iface from inetsrv.\n");
 	printf(NAME ": Accepting connections.\n");
 
Index: uspace/srv/net/inetsrv/meson.build
===================================================================
--- uspace/srv/net/inetsrv/meson.build	(revision 1a59a89d7984e9dcbc55f35785b93f5a1491f2dd)
+++ uspace/srv/net/inetsrv/meson.build	(revision 6c60a7c0c97cb007c29f70f6b1ad4efc39d98c17)
@@ -27,5 +27,6 @@
 #
 
-deps = [ 'inet', 'sif' ]
+deps = [ 'inet', 'sif', 'pcap' ]
+
 src = files(
 	'addrobj.c',
