Index: uspace/lib/drv/generic/remote_nic.c
===================================================================
--- uspace/lib/drv/generic/remote_nic.c	(revision 153cc76acfecd18d9bb208e102fdfe6aa9926b08)
+++ uspace/lib/drv/generic/remote_nic.c	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
@@ -39,18 +39,26 @@
 #include <errno.h>
 #include <ipc/services.h>
-#include <adt/measured_strings.h>
 #include <sys/time.h>
 #include "ops/nic.h"
 
-static void remote_nic_send_message(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
-{
-	nic_iface_t *nic_iface = (nic_iface_t *) iface;
-	assert(nic_iface->send_message);
-	
-	packet_id_t packet_id = (packet_id_t) IPC_GET_ARG2(*call);
-	
-	int rc = nic_iface->send_message(dev, packet_id);
-	async_answer_0(callid, rc);
+static void remote_nic_send_frame(ddf_fun_t *dev, void *iface,
+    ipc_callid_t callid, ipc_call_t *call)
+{
+	nic_iface_t *nic_iface = (nic_iface_t *) iface;
+	assert(nic_iface->send_frame);
+	
+	void *data;
+	size_t size;
+	int rc;
+	
+	rc = async_data_write_accept(&data, false, 0, 0, 0, &size);
+	if (rc != EOK) {
+		async_answer_0(callid, EINVAL);
+		return;
+	}
+	
+	rc = nic_iface->send_frame(dev, data, size);
+	async_answer_0(callid, rc);
+	free(data);
 }
 
@@ -1194,5 +1202,5 @@
  */
 static remote_iface_func_ptr_t remote_nic_iface_ops[] = {
-	&remote_nic_send_message,
+	&remote_nic_send_frame,
 	&remote_nic_connect_to_nil,
 	&remote_nic_get_state,
Index: uspace/lib/drv/include/ops/nic.h
===================================================================
--- uspace/lib/drv/include/ops/nic.h	(revision 153cc76acfecd18d9bb208e102fdfe6aa9926b08)
+++ uspace/lib/drv/include/ops/nic.h	(revision 6d8455d96fd6cd160666aef7ea55519828d14f42)
@@ -37,5 +37,4 @@
 #define LIBDRV_OPS_NIC_H_
 
-#include <net/packet.h>
 #include <ipc/services.h>
 #include <net/device.h>
@@ -46,5 +45,5 @@
 typedef struct nic_iface {
 	/** Mandatory methods */
-	int (*send_message)(ddf_fun_t *, packet_id_t);
+	int (*send_frame)(ddf_fun_t *, void *, size_t);
 	int (*connect_to_nil)(ddf_fun_t *, services_t, nic_device_id_t);
 	int (*get_state)(ddf_fun_t *, nic_device_state_t *);
