]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
MRT: Fix MP-BGP next hops
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Fri, 22 Jan 2021 03:34:15 +0000 (04:34 +0100)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Fri, 22 Jan 2021 03:34:15 +0000 (04:34 +0100)
Flag signalling that MP-BGP mode should be used got reset after first
batch of routes, so remaining routes were processed without that, leading
to missing MP_REACH_NLRI attribute.

Thanks to Piotr Wydrych for the bugreport.

proto/mrt/mrt.c

index 76d6c48f9bb50dcc9ad41dd3c6c094e67393cfa3..838360c26591b4d2d9cb6b4eeb2cb04c8a07da99 100644 (file)
@@ -244,7 +244,6 @@ mrt_next_table(struct mrt_table_dump_state *s)
 
   s->table = tab;
   s->ipv4 = tab ? (tab->addr_type == NET_IP4) : 0;
-  s->bws->mp_reach = !s->ipv4;
 
   if (s->table)
     rt_lock_table(s->table);
@@ -434,6 +433,7 @@ mrt_rib_table_entry_bgp_attrs(struct mrt_table_dump_state *s, rte *r)
   mrt_buffer_need(b, MRT_ATTR_BUFFER_SIZE);
   byte *pos = b->pos;
 
+  s->bws->mp_reach = !s->ipv4;
   s->bws->mp_next_hop = NULL;
 
   /* Encode BGP attributes */