summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsthen <sthen@openbsd.org>2013-03-22 08:42:55 +0000
committersthen <sthen@openbsd.org>2013-03-22 08:42:55 +0000
commitdb8be6431fcaf29cf82e7cebe9e16b182f141463 (patch)
tree8bccd56dd3d2ec28301bf12f4a9efed4a0691b43
parentDo not register symlinks in the sum files. This makes no sense and makes (diff)
downloadwireguard-openbsd-db8be6431fcaf29cf82e7cebe9e16b182f141463.tar.xz
wireguard-openbsd-db8be6431fcaf29cf82e7cebe9e16b182f141463.zip
reinstate code to announce routes to backup carp interfaces. this was removed
in a cleanup in r1.83, but we do still want to announce these (with a high metric), so that a specific route to the relevant network is maintained during failover. ok florian@ claudio@
-rw-r--r--usr.sbin/ospfd/ospfe.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/ospfd/ospfe.c b/usr.sbin/ospfd/ospfe.c
index 350a24844d0..d0dfd8aaf88 100644
--- a/usr.sbin/ospfd/ospfe.c
+++ b/usr.sbin/ospfd/ospfe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ospfe.c,v 1.85 2013/01/17 10:07:56 markus Exp $ */
+/* $OpenBSD: ospfe.c,v 1.86 2013/03/22 08:42:55 sthen Exp $ */
/*
* Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -869,10 +869,14 @@ orig_rtr_lsa(struct area *area)
/*
* do not add a stub net LSA for interfaces that are:
* - down
- * - have a linkstate which is down
+ * - have a linkstate which is down, apart from carp:
+ * backup carp interfaces have linkstate down, but
+ * we still announce them.
*/
if (!(iface->flags & IFF_UP) ||
- !LINK_STATE_IS_UP(iface->linkstate))
+ (!LINK_STATE_IS_UP(iface->linkstate) &&
+ !(iface->media_type == IFT_CARP &&
+ iface->linkstate == LINK_STATE_DOWN)))
continue;
log_debug("orig_rtr_lsa: stub net, "
"interface %s", iface->name);