diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index ab28ad2..fa446a5 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -43,7 +43,7 @@
 #include "zebra/interface.h"
 #include "zebra/debug.h"
 
-#define NL_PKT_BUF_SIZE 4096
+#include "rt_netlink.h"
 
 /* Socket interface to kernel */
 struct nlsock
@@ -68,20 +68,6 @@
   {0, NULL}
 };
 
-static const char *nexthop_types_desc[] =
-{
-  "none",
-  "Directly connected",
-  "Interface route",
-  "IPv4 nexthop",
-  "IPv4 nexthop with ifindex",
-  "IPv4 nexthop with ifname",
-  "IPv6 nexthop",
-  "IPv6 nexthop with ifindex",
-  "IPv6 nexthop with ifname",
-  "Null0 nexthop",
-};
-
 extern struct zebra_t zebrad;
 
 extern struct zebra_privs_t zserv_privs;
@@ -1236,7 +1222,7 @@
 
 /* Utility function  comes from iproute2. 
    Authors:	Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> */
-static int
+int
 addattr_l (struct nlmsghdr *n, int maxlen, int type, void *data, int alen)
 {
   int len;
@@ -1256,7 +1242,7 @@
   return 0;
 }
 
-static int
+int
 rta_addattr_l (struct rtattr *rta, int maxlen, int type, void *data, int alen)
 {
   int len;
@@ -1278,7 +1264,7 @@
 
 /* Utility function comes from iproute2. 
    Authors:	Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> */
-static int
+int
 addattr32 (struct nlmsghdr *n, int maxlen, int type, int data)
 {
   int len;
@@ -1515,7 +1501,7 @@
 			 inet_ntoa (p->u.prefix4),
 #endif /* HAVE_IPV6 */
 			 
-			 p->prefixlen, nexthop_types_desc[nexthop->rtype]);
+			 p->prefixlen, nexthop_type_to_str (nexthop->rtype));
                     }
 
                   if (nexthop->rtype == NEXTHOP_TYPE_IPV4
@@ -1580,7 +1566,7 @@
 #else
 			 inet_ntoa (p->u.prefix4),
 #endif /* HAVE_IPV6 */
-			 p->prefixlen, nexthop_types_desc[nexthop->type]);
+			 p->prefixlen, nexthop_type_to_str (nexthop->type));
                     }
 
                   if (nexthop->type == NEXTHOP_TYPE_IPV4
@@ -1687,7 +1673,7 @@
 #else
 			 inet_ntoa (p->u.prefix4),
 #endif /* HAVE_IPV6 */
-                         p->prefixlen, nexthop_types_desc[nexthop->rtype]);
+			 p->prefixlen, nexthop_type_to_str (nexthop->rtype));
                     }
                   if (nexthop->rtype == NEXTHOP_TYPE_IPV4
                       || nexthop->rtype == NEXTHOP_TYPE_IPV4_IFINDEX)
@@ -1761,7 +1747,7 @@
 #else
 			 inet_ntoa (p->u.prefix4),
 #endif /* HAVE_IPV6 */
-			 p->prefixlen, nexthop_types_desc[nexthop->type]);
+			 p->prefixlen, nexthop_type_to_str (nexthop->type));
                     }
                   if (nexthop->type == NEXTHOP_TYPE_IPV4
                       || nexthop->type == NEXTHOP_TYPE_IPV4_IFINDEX)
@@ -2023,3 +2009,21 @@
       thread_add_read (zebrad.master, kernel_read, NULL, netlink.sock);
     }
 }
+
+/*
+ * nl_msg_type_to_str
+ */
+const char *
+nl_msg_type_to_str (uint16_t msg_type)
+{
+  return lookup (nlmsg_str, msg_type);
+}
+
+/*
+ * nl_rtproto_to_str
+ */
+const char *
+nl_rtproto_to_str (u_char rtproto)
+{
+  return lookup (rtproto_str, rtproto);
+}
