summaryrefslogtreecommitdiff
path: root/proto/ospf/ospf.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2014-04-23 13:54:28 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2014-04-23 13:54:28 +0200
commit145368f5474436ad7c48fa26f5bde8108ae5ef4a (patch)
tree3f4485fd44404d76135037913606151f2ca4937c /proto/ospf/ospf.c
parent4dd24f05f384ac14546d4bebbfcb0ecf9a976ec6 (diff)
Extends multipath support for OSPF.
Fixes cases where the same network or external route are propagated by several OSPF routes and some other corner cases in next hop construction and ECMP. Allows to specify whether external routes should be merged. Thanks to Peter Christensen for the original patch.
Diffstat (limited to 'proto/ospf/ospf.c')
-rw-r--r--proto/ospf/ospf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index e751f7ca..6756ff49 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -234,6 +234,7 @@ ospf_start(struct proto *p)
po->router_id = proto_get_router_id(p->cf);
po->rfc1583 = c->rfc1583;
po->stub_router = c->stub_router;
+ po->merge_external = c->merge_external;
po->ebit = 0;
po->ecmp = c->ecmp;
po->tick = c->tick;
@@ -742,6 +743,7 @@ ospf_reconfigure(struct proto *p, struct proto_config *c)
return 0;
po->stub_router = new->stub_router;
+ po->merge_external = new->merge_external;
po->ecmp = new->ecmp;
po->tick = new->tick;
po->disp_timer->recurrent = po->tick;