diff options
Diffstat (limited to 'isisd/isis_zebra.c')
-rw-r--r-- | isisd/isis_zebra.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index 958f8c228..dfe74e325 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -219,11 +219,11 @@ static int isis_zebra_if_address_del(int command, struct zclient *client, } static int isis_zebra_link_params(int command, struct zclient *zclient, - zebra_size_t length) + zebra_size_t length, vrf_id_t vrf_id) { struct interface *ifp; - ifp = zebra_interface_link_params_read(zclient->ibuf); + ifp = zebra_interface_link_params_read(zclient->ibuf, vrf_id); if (ifp == NULL) return 0; @@ -249,8 +249,6 @@ static void isis_zebra_route_add_route(struct prefix *prefix, return; memset(&api, 0, sizeof(api)); - if (fabricd) - api.flags |= ZEBRA_FLAG_ONLINK; api.vrf_id = VRF_DEFAULT; api.type = PROTO_TYPE; api.safi = SAFI_UNICAST; @@ -275,6 +273,8 @@ static void isis_zebra_route_add_route(struct prefix *prefix, if (count >= MULTIPATH_NUM) break; api_nh = &api.nexthops[count]; + if (fabricd) + api_nh->onlink = true; api_nh->vrf_id = VRF_DEFAULT; /* FIXME: can it be ? */ if (nexthop->ip.s_addr != INADDR_ANY) { @@ -298,6 +298,8 @@ static void isis_zebra_route_add_route(struct prefix *prefix, } api_nh = &api.nexthops[count]; + if (fabricd) + api_nh->onlink = true; api_nh->vrf_id = VRF_DEFAULT; api_nh->gate.ipv6 = nexthop6->ip6; api_nh->ifindex = nexthop6->ifindex; |