summaryrefslogtreecommitdiff
path: root/zebra/zserv.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zserv.c')
-rw-r--r--zebra/zserv.c26
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. */