diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-04-10 21:57:09 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-04-18 00:44:33 +0200 |
commit | 98cbbaea91f66df1ad0ad965ceb8977d8d3a8079 (patch) | |
tree | 59e2e107a4566c512828c4211bb76588795f3378 /lib/zclient.c | |
parent | pbrd: Use proper decode function for interface (diff) | |
download | frr-98cbbaea91f66df1ad0ad965ceb8977d8d3a8079.tar.xz frr-98cbbaea91f66df1ad0ad965ceb8977d8d3a8079.zip |
lib: Handle if up/down and vrf enable/disable events
Properly notice when we get if up/down and vrf enable/disable
events and attempt to properly install nexthops as they
come in.
Ticket: CM20489
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib/zclient.c')
-rw-r--r-- | lib/zclient.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/zclient.c b/lib/zclient.c index e1ce40ce7..48182d6b2 100644 --- a/lib/zclient.c +++ b/lib/zclient.c @@ -37,6 +37,7 @@ #include "mpls.h" #include "sockopt.h" #include "pbr.h" +#include "nexthop_group.h" DEFINE_MTYPE_STATIC(LIB, ZCLIENT, "Zclient") DEFINE_MTYPE_STATIC(LIB, REDIST_INST, "Redistribution instance IDs") @@ -1697,7 +1698,9 @@ struct interface *zebra_interface_link_params_read(struct stream *s) void zebra_interface_if_set_value(struct stream *s, struct interface *ifp) { uint8_t link_params_status = 0; + ifindex_t old_ifindex; + old_ifindex = ifp->ifindex; /* Read interface's index. */ if_set_index(ifp, stream_getl(s)); ifp->status = stream_getc(s); @@ -1724,6 +1727,8 @@ void zebra_interface_if_set_value(struct stream *s, struct interface *ifp) struct if_link_params *iflp = if_link_params_get(ifp); link_params_set_value(s, iflp); } + + nexthop_group_interface_state_change(ifp, old_ifindex); } size_t zebra_interface_link_params_write(struct stream *s, |