summaryrefslogtreecommitdiff
path: root/zebra/rt_netlink.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-06-20 08:21:00 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-06-20 09:06:07 -0400
commit6776485deef32900c119a61d43faecb515d3b20b (patch)
tree53db94c0f32621cc7bac08b0b40fb20ec037496e /zebra/rt_netlink.c
parent530d701611dc489161af6f34547174d147655a5a (diff)
quagga: Allow compile time determination of v6 RR semantics
The patches to allow kernel v6 Route Replacement semantics to work correctly are on a very recent kernel. If you are compiling on a linux kernel where it's broken, just compile with --disable-rr-semantics. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> (cherry picked from commit 76981cd383e4bed69454bcc4151a0aae89e8ca84)
Diffstat (limited to 'zebra/rt_netlink.c')
-rw-r--r--zebra/rt_netlink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index e52fcd4342..1f7b1a9cff 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -2390,7 +2390,12 @@ kernel_add_ipv6 (struct prefix *p, struct rib *rib)
int
kernel_update_ipv6 (struct prefix *p, struct rib *rib)
{
+#if defined (HAVE_V6_RR_SEMANTICS)
return netlink_route_multipath (RTM_NEWROUTE, p, rib, AF_INET6, 1);
+#else
+ kernel_delete_ipv6 (p, rib);
+ return kernel_add_ipv6 (p, rib);
+#endif
}
int