Index: uspace/lib/nic/include/nic.h
===================================================================
--- uspace/lib/nic/include/nic.h	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/include/nic.h	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -44,4 +44,5 @@
 #include <device/hw_res_parsed.h>
 #include <ops/nic.h>
+#include <pcap_dumper.h>
 
 #define DEVICE_CATEGORY_NIC "nic"
@@ -278,4 +279,9 @@
 extern void nic_sw_period_stop(nic_t *);
 
+/* pcapdump interface */
+extern pcap_dumper_t *nic_get_pcap_dumper(nic_t *);
+
+extern errno_t nic_fun_add_to_cats(ddf_fun_t *fun);
+
 #endif // __NIC_H__
 
Index: uspace/lib/nic/include/nic_driver.h
===================================================================
--- uspace/lib/nic/include/nic_driver.h	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/include/nic_driver.h	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -46,4 +46,5 @@
 #include <nic/nic.h>
 #include <async.h>
+#include <pcapdump_srv.h>
 
 #include "nic.h"
@@ -195,4 +196,8 @@
 	 */
 	poll_request_handler on_poll_request;
+
+	/** Packets dumper. */
+	pcap_dumper_t dumper;
+
 	/** Data specific for particular driver */
 	void *specific;
Index: uspace/lib/nic/include/nic_impl.h
===================================================================
--- uspace/lib/nic/include/nic_impl.h	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/include/nic_impl.h	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -87,6 +87,4 @@
 extern void nic_close_impl(ddf_fun_t *fun);
 
-extern void nic_device_added_impl(ddf_dev_t *dev);
-
 #endif
 
Index: uspace/lib/nic/meson.build
===================================================================
--- uspace/lib/nic/meson.build	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/meson.build	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -27,5 +27,5 @@
 #
 
-deps = [ 'drv' ]
+deps = [ 'drv' , 'pcap' ]
 c_args = [ '-DLIBNIC_INTERNAL', ]
 src = files(
Index: uspace/lib/nic/src/nic_driver.c
===================================================================
--- uspace/lib/nic/src/nic_driver.c	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/src/nic_driver.c	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -47,4 +47,5 @@
 #include <ops/nic.h>
 #include <errno.h>
+#include <pcapdump_drv_iface.h>
 
 #include "nic_driver.h"
@@ -522,4 +523,5 @@
 	 * 		 calls it inside send_frame handler (with locked main lock)
 	 */
+	pcapdump_packet(nic_get_pcap_dumper(nic_data), frame->data, frame->size);
 	fibril_rwlock_read_lock(&nic_data->rxc_lock);
 	nic_frame_type_t frame_type;
@@ -560,4 +562,5 @@
 		fibril_rwlock_write_unlock(&nic_data->stats_lock);
 	}
+	//pcapdump_packet(nic_get_pcap_dumper(nic_data), frame->data, frame->size);
 	nic_release_frame(nic_data, frame);
 }
@@ -648,4 +651,9 @@
 	nic_data->dev = device;
 
+	errno_t pcap_rc  = pcapdump_init(nic_get_pcap_dumper(nic_data));
+	if (pcap_rc != EOK) {
+		printf("Failed creating pcapdump port\n");
+	}
+
 	return nic_data;
 }
@@ -1133,4 +1141,9 @@
 }
 
+pcap_dumper_t *nic_get_pcap_dumper(nic_t *nic_data)
+{
+	return &nic_data->dumper;
+}
+
 /** @}
  */
Index: uspace/lib/nic/src/nic_impl.c
===================================================================
--- uspace/lib/nic/src/nic_impl.c	(revision 0db0df2acaf79a846301b8337ca8d67aee9c1f18)
+++ uspace/lib/nic/src/nic_impl.c	(revision 0ce9eb8edda098a24cfad673ae33689661db3889)
@@ -40,4 +40,5 @@
 #include <ipc/services.h>
 #include <ns.h>
+#include <pcapdump_drv_iface.h>
 #include "nic_driver.h"
 #include "nic_ev.h"
@@ -179,5 +180,5 @@
 		return EBUSY;
 	}
-
+	pcapdump_packet(nic_get_pcap_dumper(nic_data), data, size);
 	nic_data->send_frame(nic_data, data, size);
 	fibril_rwlock_read_unlock(&nic_data->main_lock);
@@ -843,4 +844,18 @@
 }
 
+errno_t nic_fun_add_to_cats(ddf_fun_t *fun)
+{
+	errno_t rc;
+	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
+	if (rc != EOK)
+		return rc;
+
+	rc = ddf_fun_add_to_category(fun, "pcap");
+	if (rc != EOK) {
+		return rc;
+	}
+	return EOK;
+}
+
 /** @}
  */
