diff --git a/openbsc/src/gprs/Makefile.am b/openbsc/src/gprs/Makefile.am
index 634948d..295fb86 100644
--- a/openbsc/src/gprs/Makefile.am
+++ b/openbsc/src/gprs/Makefile.am
@@ -34,8 +34,8 @@
 			-lgtp $(OSMO_LIBS) $(LIBOSMOABIS_LIBS) $(LIBCARES_LIBS) \
 			$(LIBCRYPTO_LIBS) -lrt
 
-osmo_gtphub_SOURCES =	gtphub_main.c gtphub.c gtphub_ares.c gtphub_vty.c \
-			sgsn_ares.c gprs_utils.c
+osmo_gtphub_SOURCES =	gtphub_main.c gtphub.c gtphub_sock.c gtphub_ares.c \
+			gtphub_vty.c sgsn_ares.c gprs_utils.c
 osmo_gtphub_LDADD = 	\
 			$(top_builddir)/src/libcommon/libcommon.a \
 			-lgtp $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) \
diff --git a/openbsc/src/gprs/gtphub.c b/openbsc/src/gprs/gtphub.c
index 27c7016..55b9004 100644
--- a/openbsc/src/gprs/gtphub.c
+++ b/openbsc/src/gprs/gtphub.c
@@ -1741,30 +1741,6 @@
 
 }
 
-static int gtphub_write(const struct osmo_fd *to,
-			const struct osmo_sockaddr *to_addr,
-			const uint8_t *buf, size_t buf_len)
-{
-	errno = 0;
-	ssize_t sent = sendto(to->fd, buf, buf_len, 0,
-			      (struct sockaddr*)&to_addr->a, to_addr->l);
-	LOG(LOGL_DEBUG, "to %s\n", osmo_sockaddr_to_str(to_addr));
-
-	if (sent == -1) {
-		LOG(LOGL_ERROR, "error: %s\n", strerror(errno));
-		return -EINVAL;
-	}
-
-	if (sent != buf_len)
-		LOG(LOGL_ERROR, "sent(%d) != data_len(%d)\n",
-		    (int)sent, (int)buf_len);
-	else
-		LOG(LOGL_DEBUG, "Sent %d\n%s\n",
-		    (int)sent, osmo_hexdump(buf, sent));
-
-	return 0;
-}
-
 static int gtphub_send_del_pdp_ctx(struct gtphub *hub,
 				   struct gtphub_tunnel *tun,
 				   int to_side)
diff --git a/openbsc/src/gprs/gtphub_sock.c b/openbsc/src/gprs/gtphub_sock.c
new file mode 100644
index 0000000..6ea1735
--- /dev/null
+++ b/openbsc/src/gprs/gtphub_sock.c
@@ -0,0 +1,58 @@
+/* GTP Hub Implementation */
+
+/* (C) 2015 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
+ * All Rights Reserved
+ *
+ * gtphub_sock.c.
+ *
+ * This file is kept separate so that these functions can be wrapped for
+ * gtphub_test.c. When a function and its callers are in the same compilational
+ * unit, the wrappability may be optimized away.
+ *
+ * Author: Neels Hofmeyr
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <openbsc/gtphub.h>
+#include <openbsc/debug.h>
+
+/* Convenience makro, note: only within this C file. */
+#define LOG(level, fmt, args...) \
+	LOGP(DGTPHUB, level, fmt, ##args)
+
+int gtphub_write(const struct osmo_fd *to,
+		 const struct osmo_sockaddr *to_addr,
+		 const uint8_t *buf, size_t buf_len)
+{
+	errno = 0;
+	ssize_t sent = sendto(to->fd, buf, buf_len, 0,
+			      (struct sockaddr*)&to_addr->a, to_addr->l);
+	LOG(LOGL_DEBUG, "to %s\n", osmo_sockaddr_to_str(to_addr));
+
+	if (sent == -1) {
+		LOG(LOGL_ERROR, "error: %s\n", strerror(errno));
+		return -EINVAL;
+	}
+
+	if (sent != buf_len)
+		LOG(LOGL_ERROR, "sent(%d) != data_len(%d)\n",
+		    (int)sent, (int)buf_len);
+	else
+		LOG(LOGL_DEBUG, "Sent %d\n%s\n",
+		    (int)sent, osmo_hexdump(buf, sent));
+
+	return 0;
+}
+
