Index: uspace/srv/inet/inet_link.c
===================================================================
--- uspace/srv/inet/inet_link.c	(revision e2e56e6766826103b6b7b98baac8f8d7ae826855)
+++ uspace/srv/inet/inet_link.c	(revision ceba4bed90274ab7e0275c4ddcb524984cc64a39)
@@ -43,16 +43,11 @@
 #include <stdlib.h>
 
+#include "addrobj.h"
+#include "inet.h"
 #include "inet_link.h"
+#include "pdu.h"
 
 static int inet_link_open(service_id_t sid);
 static int inet_iplink_recv(iplink_t *ilink, iplink_sdu_t *sdu);
-
-typedef struct {
-	link_t link_list;
-	service_id_t svc_id;
-	char *svc_name;
-	async_sess_t *sess;
-	iplink_t *iplink;
-} inet_link_t;
 
 static iplink_ev_ops_t inet_iplink_ev_ops = {
@@ -172,4 +167,13 @@
 	list_append(&ilink->link_list, &inet_link_list);
 
+	inet_addrobj_t *addr;
+
+	/* XXX For testing: set static IP address 192.168.0.4/24 */
+	addr = inet_addrobj_new();
+	addr->naddr.ipv4 = (192 << 24) + (168 << 16) + (0 << 8) + 4;
+	addr->naddr.bits = 24;
+	addr->ilink = ilink;
+	inet_addrobj_add(addr);
+
 	return EOK;
 
@@ -198,4 +202,24 @@
 }
 
+/** Send datagram over Internet link */
+int inet_link_send_dgram(inet_link_t *ilink, inet_addr_t *lsrc,
+    inet_addr_t *ldest, inet_dgram_t *dgram, uint8_t ttl, int df)
+{
+	iplink_sdu_t sdu;
+	int rc;
+
+	sdu.lsrc.ipv4 = lsrc->ipv4;
+	sdu.ldest.ipv4 = ldest->ipv4;
+	rc = inet_pdu_encode(dgram, &sdu.data, &sdu.size);
+	if (rc != EOK)
+		return rc;
+
+	rc = iplink_send(ilink->iplink, &sdu);
+	free(sdu.data);
+
+	return rc;
+}
+
+
 /** @}
  */
