]> git.puffer.fish Git - mirror/frr.git/commitdiff
Update ripng_zebra.c
authorHongguang Li <nskeeper@gmail.com>
Mon, 22 Feb 2016 03:46:36 +0000 (11:46 +0800)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 17 Mar 2016 23:26:53 +0000 (19:26 -0400)
Make route redistribution not go through del/add cycle during updates

ripngd/ripng_zebra.c

index e404e0f37cc34b56343b899c5f647dfcc833c477..afd65802042e40627478d7cbdc632d7432d4ba25 100644 (file)
@@ -133,7 +133,7 @@ ripng_zebra_read_ipv6 (int command, struct zclient *zclient,
   else
     api.metric = 0;
 
-  if (command == ZEBRA_IPV6_ROUTE_ADD)
+  if (command == ZEBRA_REDISTRIBUTE_IPV6_ADD)
     ripng_redistribute_add (api.type, RIPNG_ROUTE_REDISTRIBUTE, &p, ifindex, &nexthop);
   else
     ripng_redistribute_delete (api.type, RIPNG_ROUTE_REDISTRIBUTE, &p, ifindex);
@@ -518,8 +518,14 @@ zebra_init (struct thread_master *master)
   zclient->interface_delete = ripng_interface_delete;
   zclient->interface_address_add = ripng_interface_address_add;
   zclient->interface_address_delete = ripng_interface_address_delete;
+  zclient->ipv4_route_add = NULL;
+  zclient->ipv4_route_delete = NULL;
+  zclient->redistribute_route_ipv4_add = NULL;
+  zclient->redistribute_route_ipv4_del = NULL;
   zclient->ipv6_route_add = ripng_zebra_read_ipv6;
   zclient->ipv6_route_delete = ripng_zebra_read_ipv6;
+  zclient->redistribute_route_ipv6_add = ripng_zebra_read_ipv6;
+  zclient->redistribute_route_ipv6_del = ripng_zebra_read_ipv6;
   
   /* Install zebra node. */
   install_node (&zebra_node, zebra_config_write);