summaryrefslogtreecommitdiff
path: root/isisd/isis_zebra.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_zebra.c')
-rw-r--r--isisd/isis_zebra.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c
index a80a18d887..3aa21a9aed 100644
--- a/isisd/isis_zebra.c
+++ b/isisd/isis_zebra.c
@@ -62,6 +62,13 @@ static int isis_router_id_update_zebra(ZAPI_CALLBACK_ARGS)
struct isis_area *area;
struct listnode *node;
struct prefix router_id;
+ struct isis *isis = NULL;
+
+ isis = isis_lookup_by_vrfid(vrf_id);
+
+ if (isis == NULL) {
+ return -1;
+ }
zebra_router_id_update_read(zclient->ibuf, &router_id);
if (isis->router_id == router_id.u.prefix4.s_addr)
@@ -407,6 +414,12 @@ void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra)
static int isis_zebra_read(ZAPI_CALLBACK_ARGS)
{
struct zapi_route api;
+ struct isis *isis = NULL;
+
+ isis = isis_lookup_by_vrfid(vrf_id);
+
+ if (isis == NULL)
+ return -1;
if (zapi_route_decode(zclient->ibuf, &api) < 0)
return -1;
@@ -428,10 +441,11 @@ static int isis_zebra_read(ZAPI_CALLBACK_ARGS)
}
if (cmd == ZEBRA_REDISTRIBUTE_ROUTE_ADD)
- isis_redist_add(api.type, &api.prefix, &api.src_prefix,
+ isis_redist_add(isis, api.type, &api.prefix, &api.src_prefix,
api.distance, api.metric);
else
- isis_redist_delete(api.type, &api.prefix, &api.src_prefix);
+ isis_redist_delete(isis, api.type, &api.prefix,
+ &api.src_prefix);
return 0;
}