Index: uspace/lib/c/generic/inet.c
===================================================================
--- uspace/lib/c/generic/inet.c	(revision 58e9dec38facb087ef357050fc85631d17323e92)
+++ uspace/lib/c/generic/inet.c	(revision 8d48c7e46fe4c12afd9489154fb06b10f9e2c913)
@@ -177,4 +177,5 @@
 	
 	dgram.tos = IPC_GET_ARG1(*icall);
+	dgram.iplink = IPC_GET_ARG2(*icall);
 	
 	ipc_callid_t callid;
Index: uspace/lib/c/generic/iplink.c
===================================================================
--- uspace/lib/c/generic/iplink.c	(revision 58e9dec38facb087ef357050fc85631d17323e92)
+++ uspace/lib/c/generic/iplink.c	(revision 8d48c7e46fe4c12afd9489154fb06b10f9e2c913)
@@ -47,5 +47,5 @@
 static void iplink_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
 
-int iplink_open(async_sess_t *sess, iplink_ev_ops_t *ev_ops,
+int iplink_open(async_sess_t *sess, iplink_ev_ops_t *ev_ops, void *arg,
     iplink_t **riplink)
 {
@@ -56,4 +56,5 @@
 	iplink->sess = sess;
 	iplink->ev_ops = ev_ops;
+	iplink->arg = arg;
 	
 	async_exch_t *exch = async_exchange_begin(sess);
@@ -234,4 +235,9 @@
 	
 	return (int) retval;
+}
+
+void *iplink_get_userptr(iplink_t *iplink)
+{
+	return iplink->arg;
 }
 
Index: uspace/lib/c/include/inet/iplink.h
===================================================================
--- uspace/lib/c/include/inet/iplink.h	(revision 58e9dec38facb087ef357050fc85631d17323e92)
+++ uspace/lib/c/include/inet/iplink.h	(revision 8d48c7e46fe4c12afd9489154fb06b10f9e2c913)
@@ -44,4 +44,5 @@
 	async_sess_t *sess;
 	struct iplink_ev_ops *ev_ops;
+	void *arg;
 } iplink_t;
 
@@ -81,5 +82,5 @@
 } iplink_ev_ops_t;
 
-extern int iplink_open(async_sess_t *, iplink_ev_ops_t *, iplink_t **);
+extern int iplink_open(async_sess_t *, iplink_ev_ops_t *, void *, iplink_t **);
 extern void iplink_close(iplink_t *);
 extern int iplink_send(iplink_t *, iplink_sdu_t *);
@@ -90,4 +91,5 @@
 extern int iplink_get_mac48(iplink_t *, addr48_t *);
 extern int iplink_set_mac48(iplink_t *, addr48_t);
+extern void *iplink_get_userptr(iplink_t *);
 
 #endif
