summaryrefslogtreecommitdiff
path: root/zebra/zserv.c
diff options
context:
space:
mode:
authorG.Balaji <balajig81@gmail.com>2011-11-26 22:10:39 +0400
committerDenis Ovsienko <infrastation@yandex.ru>2012-01-23 14:30:57 +0400
commitf768f367bcd1f37a53c563495176a5a134caf234 (patch)
tree57a0fff4f2a0e832623aa0d6d4d3bd2a3c951d98 /zebra/zserv.c
parentc7ec179a95c1ed4fcd3d3be3f981c8c20dce534a (diff)
zebra: IPv6 MP-BGP Routes addition and deletion
This patch contains the following: 1. Addition of IPv6 SAFI_MULTICAST BGP routes into the RTM's RIB. 2. Deletion of IPv6 SAFI_MULTICAST BGP routes from the RTM's RIB.
Diffstat (limited to 'zebra/zserv.c')
-rw-r--r--zebra/zserv.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 310c6ce6..672dee88 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -937,6 +937,7 @@ zread_ipv6_add (struct zserv *client, u_short length)
api.type = stream_getc (s);
api.flags = stream_getc (s);
api.message = stream_getc (s);
+ api.safi = stream_getw (s);
/* IPv4 prefix. */
memset (&p, 0, sizeof (struct prefix_ipv6));
@@ -978,10 +979,10 @@ zread_ipv6_add (struct zserv *client, u_short length)
if (IN6_IS_ADDR_UNSPECIFIED (&nexthop))
rib_add_ipv6 (api.type, api.flags, &p, NULL, ifindex, zebrad.rtm_table_default, api.metric,
- api.distance);
+ api.distance, api.safi);
else
rib_add_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, zebrad.rtm_table_default, api.metric,
- api.distance);
+ api.distance, api.safi);
return 0;
}
@@ -1004,6 +1005,7 @@ zread_ipv6_delete (struct zserv *client, u_short length)
api.type = stream_getc (s);
api.flags = stream_getc (s);
api.message = stream_getc (s);
+ api.safi = stream_getw (s);
/* IPv4 prefix. */
memset (&p, 0, sizeof (struct prefix_ipv6));
@@ -1043,9 +1045,9 @@ zread_ipv6_delete (struct zserv *client, u_short length)
api.metric = 0;
if (IN6_IS_ADDR_UNSPECIFIED (&nexthop))
- rib_delete_ipv6 (api.type, api.flags, &p, NULL, ifindex, client->rtm_table);
+ rib_delete_ipv6 (api.type, api.flags, &p, NULL, ifindex, client->rtm_table, api.safi);
else
- rib_delete_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, client->rtm_table);
+ rib_delete_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, client->rtm_table, api.safi);
return 0;
}