gtp-rtnl: add gtp_dev_destroy

This function allows you to destroy the gtpX device.
diff --git a/include/libgtpnl/gtpnl.h b/include/libgtpnl/gtpnl.h
index 1685a17..3c2c624 100644
--- a/include/libgtpnl/gtpnl.h
+++ b/include/libgtpnl/gtpnl.h
@@ -15,6 +15,7 @@
 int genl_lookup_family(struct mnl_socket *nl, const char *family);
 
 int gtp_dev_create(const char *ifname);
+int gtp_dev_destroy(const char *ifname);
 
 struct gtp_tunnel;
 
diff --git a/src/gtp-rtnl.c b/src/gtp-rtnl.c
index 72a2870..48dbdf0 100644
--- a/src/gtp-rtnl.c
+++ b/src/gtp-rtnl.c
@@ -98,3 +98,21 @@
 	return gtp_dev_talk(nlh, seq);
 }
 EXPORT_SYMBOL(gtp_dev_create);
+
+int gtp_dev_destroy(const char *ifname)
+{
+	char buf[MNL_SOCKET_BUFFER_SIZE];
+	struct nlmsghdr *nlh;
+	struct ifinfomsg *ifm;
+	unsigned int seq = time(NULL);
+
+	nlh = gtp_put_nlmsg(buf, RTM_DELLINK, NLM_F_ACK, seq);
+	ifm = mnl_nlmsg_put_extra_header(nlh, sizeof(*ifm));
+	ifm->ifi_family = AF_INET;
+	ifm->ifi_change |= IFF_UP;
+	ifm->ifi_flags &= ~IFF_UP;
+	ifm->ifi_index = if_nametoindex(ifname);
+
+	return gtp_dev_talk(nlh, seq);
+}
+EXPORT_SYMBOL(gtp_dev_destroy);
diff --git a/src/libgtpnl.map b/src/libgtpnl.map
index b38785c..326bf17 100644
--- a/src/libgtpnl.map
+++ b/src/libgtpnl.map
@@ -4,7 +4,10 @@
   genl_nlmsg_build_hdr;
   genl_socket_talk;
   genl_lookup_family;
+
   gtp_dev_create;
+  gtp_dev_destroy;
+
   gtp_add_tunnel;
   gtp_del_tunnel;
   gtp_list_tunnel;