diff --git a/src/gtp-genl.c b/src/gtp-genl.c
index 43ffb30..c7a0522 100644
--- a/src/gtp-genl.c
+++ b/src/gtp-genl.c
@@ -19,15 +19,14 @@
 
 #include "internal.h"
 
-static void gtp_build_payload(struct nlmsghdr *nlh, uint64_t tid,
-			      uint32_t ifidx, uint32_t sgsn_addr,
-			      uint32_t ms_addr, uint32_t version)
+static void gtp_build_payload(struct nlmsghdr *nlh, struct gtp_tunnel *t)
 {
-	mnl_attr_put_u32(nlh, GTPA_VERSION, version);
-	mnl_attr_put_u32(nlh, GTPA_LINK, ifidx);
-	mnl_attr_put_u32(nlh, GTPA_SGSN_ADDRESS, sgsn_addr);
-	mnl_attr_put_u32(nlh, GTPA_MS_ADDRESS, ms_addr);
-	mnl_attr_put_u64(nlh, GTPA_TID, tid);
+	mnl_attr_put_u32(nlh, GTPA_VERSION, t->gtp_version);
+	mnl_attr_put_u32(nlh, GTPA_LINK, t->ifidx);
+	mnl_attr_put_u32(nlh, GTPA_SGSN_ADDRESS, t->sgsn_addr.s_addr);
+	mnl_attr_put_u32(nlh, GTPA_MS_ADDRESS, t->ms_addr.s_addr);
+	mnl_attr_put_u64(nlh, GTPA_TID, t->tid);
+	mnl_attr_put_u16(nlh, GTPA_FLOWID, t->flowid);
 }
 
 int gtp_add_tunnel(int genl_id, struct mnl_socket *nl, struct gtp_tunnel *t)
@@ -44,8 +43,7 @@
 
 	nlh = genl_nlmsg_build_hdr(buf, genl_id, NLM_F_EXCL | NLM_F_ACK, ++seq,
 				   GTP_CMD_TUNNEL_NEW);
-	gtp_build_payload(nlh, t->tid, t->ifidx, t->sgsn_addr.s_addr,
-			  t->ms_addr.s_addr, t->gtp_version);
+	gtp_build_payload(nlh, t);
 
 	if (genl_socket_talk(nl, nlh, seq, NULL, NULL) < 0)
 		perror("genl_socket_talk");
@@ -62,7 +60,7 @@
 
 	nlh = genl_nlmsg_build_hdr(buf, genl_id, NLM_F_ACK, ++seq,
 				   GTP_CMD_TUNNEL_DELETE);
-	gtp_build_payload(nlh, t->tid, t->ifidx, 0, 0, t->gtp_version);
+	gtp_build_payload(nlh, t);
 
 	if (genl_socket_talk(nl, nlh, seq, NULL, NULL) < 0)
 		perror("genl_socket_talk");
diff --git a/src/gtp.c b/src/gtp.c
index 9ec523f..1986954 100644
--- a/src/gtp.c
+++ b/src/gtp.c
@@ -47,6 +47,12 @@
 }
 EXPORT_SYMBOL(gtp_tunnel_set_tid);
 
+void gtp_tunnel_set_flowid(struct gtp_tunnel *t, uint16_t flowid)
+{
+	t->flowid = flowid;
+}
+EXPORT_SYMBOL(gtp_tunnel_set_flowid);
+
 const uint32_t gtp_tunnel_get_ifidx(struct gtp_tunnel *t)
 {
 	return t->ifidx;
@@ -76,3 +82,9 @@
 	return t->tid;
 }
 EXPORT_SYMBOL(gtp_tunnel_get_tid);
+
+uint16_t gtp_tunnel_get_flowid(struct gtp_tunnel *t)
+{
+	return t->flowid;
+}
+EXPORT_SYMBOL(gtp_tunnel_get_flowid);
diff --git a/src/internal.h b/src/internal.h
index cd2093a..75b3954 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -17,6 +17,7 @@
 	struct in_addr	ms_addr;
 	struct in_addr	sgsn_addr;
 	uint64_t	tid;
+	uint16_t	flowid;
 	int		gtp_version;
 };
 
diff --git a/src/libgtpnl.map b/src/libgtpnl.map
index 326bf17..2e80543 100644
--- a/src/libgtpnl.map
+++ b/src/libgtpnl.map
@@ -19,11 +19,13 @@
   gtp_tunnel_set_sgsn_ip4;
   gtp_tunnel_set_version;
   gtp_tunnel_set_tid;
+  gtp_tunnel_set_flowid;
   gtp_tunnel_get_ifidx;
   gtp_tunnel_get_ms_ip4;
   gtp_tunnel_get_sgsn_ip4;
   gtp_tunnel_get_version;
   gtp_tunnel_get_tid;
+  gtp_tunnel_get_flowid;
 
 local: *;
 };
