From: Hongguang Li Date: Mon, 22 Feb 2016 03:46:36 +0000 (+0800) Subject: Update ripng_zebra.c X-Git-Tag: frr-2.0-rc1~1057 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=978dd801a9e9926c6be963e67e94bed16c06e7ab;p=mirror%2Ffrr.git Update ripng_zebra.c Make route redistribution not go through del/add cycle during updates --- diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c index e404e0f37c..afd6580204 100644 --- a/ripngd/ripng_zebra.c +++ b/ripngd/ripng_zebra.c @@ -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);