diff options
Diffstat (limited to 'zebra/zserv.c')
| -rw-r--r-- | zebra/zserv.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c index ba3c59aafb..7a5700210f 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -37,6 +37,7 @@ #include "network.h" #include "buffer.h" #include "nexthop.h" +#include "vrf.h" #include "zebra/zserv.h" #include "zebra/router-id.h" @@ -643,7 +644,7 @@ zsend_ipv6_nexthop_lookup (struct zserv *client, struct in6_addr *addr) struct nexthop *nexthop; /* Lookup nexthop. */ - rib = rib_match_ipv6 (addr); + rib = rib_match_ipv6 (addr, VRF_DEFAULT); /* Get output stream. */ s = client->obuf; @@ -710,7 +711,7 @@ zsend_ipv4_nexthop_lookup (struct zserv *client, struct in_addr addr) struct nexthop *nexthop; /* Lookup nexthop. */ - rib = rib_match_ipv4 (addr); + rib = rib_match_ipv4 (addr, VRF_DEFAULT); /* Get output stream. */ s = client->obuf; @@ -892,7 +893,7 @@ zsend_ipv4_import_lookup (struct zserv *client, struct prefix_ipv4 *p) struct nexthop *nexthop; /* Lookup nexthop. */ - rib = rib_lookup_ipv4 (p); + rib = rib_lookup_ipv4 (p, VRF_DEFAULT); /* Get output stream. */ s = client->obuf; @@ -947,7 +948,8 @@ zsend_ipv4_import_lookup (struct zserv *client, struct prefix_ipv4 *p) /* Router-id is updated. Send ZEBRA_ROUTER_ID_ADD to client. */ int -zsend_router_id_update (struct zserv *client, struct prefix *p) +zsend_router_id_update (struct zserv *client, struct prefix *p, + vrf_id_t vrf_id) { struct stream *s; int blen; @@ -1076,6 +1078,9 @@ zread_ipv4_add (struct zserv *client, u_short length) p.prefixlen = stream_getc (s); stream_get (&p.prefix, s, PSIZE (p.prefixlen)); + /* VRF ID */ + rib->vrf_id = VRF_DEFAULT; + /* Nexthop parse. */ if (CHECK_FLAG (message, ZAPI_MESSAGE_NEXTHOP)) { @@ -1231,7 +1236,7 @@ zread_ipv4_delete (struct zserv *client, u_short length) api.tag = 0; rib_delete_ipv4 (api.type, api.instance, api.flags, &p, nexthop_p, ifindex, - client->rtm_table, api.safi); + VRF_DEFAULT, client->rtm_table, api.safi); client->v4_route_del_cnt++; return 0; } @@ -1505,6 +1510,7 @@ zread_ipv6_add (struct zserv *client, u_short length) /* Table */ rib->table=zebrad.rtm_table_default; + rib->vrf_id = VRF_DEFAULT; ret = rib_add_ipv6_multipath ((struct prefix *)&p, rib, safi, ifindex); /* Stats */ if (ret > 0) @@ -1584,9 +1590,11 @@ zread_ipv6_delete (struct zserv *client, u_short length) api.tag = 0; if (IN6_IS_ADDR_UNSPECIFIED (&nexthop)) - rib_delete_ipv6 (api.type, api.instance, api.flags, &p, NULL, ifindex, client->rtm_table, api.safi); + rib_delete_ipv6 (api.type, api.instance, api.flags, &p, NULL, ifindex, + VRF_DEFAULT, client->rtm_table, api.safi); else - rib_delete_ipv6 (api.type, api.instance, api.flags, &p, &nexthop, ifindex, client->rtm_table, api.safi); + rib_delete_ipv6 (api.type, api.instance, api.flags, &p, &nexthop, ifindex, + VRF_DEFAULT, client->rtm_table, api.safi); client->v6_route_del_cnt++; return 0; @@ -1616,9 +1624,9 @@ zread_router_id_add (struct zserv *client, u_short length) /* Router-id information is needed. */ client->ridinfo = 1; - router_id_get (&p); + router_id_get (&p, VRF_DEFAULT); - return zsend_router_id_update (client,&p); + return zsend_router_id_update (client, &p, VRF_DEFAULT); } /* Unregister zebra server router-id information. */ |
