diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 1bc8e747..ef06c709 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -351,7 +351,7 @@ ospf_get_attr(eattr *a, byte *buf) static int ospf_patt_compare(struct ospf_iface_patt *a, struct ospf_iface_patt *b) { - return ((a->cost==b->cost)&&(a->type==b->type)&&(a->priority==b->priority)); + return ((a->type==b->type)&&(a->priority==b->priority)); } static int @@ -418,6 +418,16 @@ ospf_reconfigure(struct proto *p, struct proto_config *c) ifa->iface->name,ip1->helloint,ip2->helloint); } + /* COST */ + if(ip1->cost!=ip2->cost) + { + ifa->cost=ip2->cost; + OSPF_TRACE(D_EVENTS, + "Changing cost interface %s from %d to %d", + ifa->iface->name,ip1->cost,ip2->cost); + schedule_rt_lsa(ifa->oa); + } + /* AUTHETICATION */ if(ip1->autype!=ip2->autype) {