bgpd: store nexthop info for redistributed IPV6 routes

BGP was ignoring nexthop info for static and other redistributed
routes for IPv6.  Build extra attribute info to store the nexthop.
See also:
  https://bugzilla.vyatta.com/show_bug.cgi?id=6073
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index b771633..98e49bc 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -5238,7 +5238,8 @@
 
 /* Redistribute route treatment. */
 void
-bgp_redistribute_add (struct prefix *p, struct in_addr *nexthop,
+bgp_redistribute_add (struct prefix *p, const struct in_addr *nexthop,
+		      const struct in6_addr *nexthop6,
 		      u_int32_t metric, u_char type)
 {
   struct bgp *bgp;
@@ -5258,6 +5259,15 @@
   if (nexthop)
     attr.nexthop = *nexthop;
 
+#ifdef HAVE_IPV6
+  if (nexthop6)
+    {
+      struct attr_extra *extra = bgp_attr_extra_get(&attr);
+      extra->mp_nexthop_global = *nexthop6;
+      extra->mp_nexthop_len = 16;
+    }
+#endif
+
   attr.med = metric;
   attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_MULTI_EXIT_DISC);