rip_rte_better() uses the IGP_METRIC_UNKNOWN instead of protocol-specific infinity
This commit is contained in:
parent
432dfe3b9b
commit
73abd91ac6
1 changed files with 6 additions and 12 deletions
|
@ -1101,24 +1101,18 @@ rip_reload_routes(struct channel *C)
|
||||||
rip_kick_timer(p);
|
rip_kick_timer(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
rip_rte_better(struct rte *new, struct rte *old)
|
|
||||||
{
|
|
||||||
ASSERT_DIE(new->src == old->src);
|
|
||||||
struct rip_proto *p = (struct rip_proto *) new->src->proto;
|
|
||||||
|
|
||||||
u32 new_metric = ea_get_int(new->attrs->eattrs, EA_RIP_METRIC, p->infinity);
|
|
||||||
u32 old_metric = ea_get_int(old->attrs->eattrs, EA_RIP_METRIC, p->infinity);
|
|
||||||
|
|
||||||
return new_metric < old_metric;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u32
|
static u32
|
||||||
rip_rte_igp_metric(struct rte *rt)
|
rip_rte_igp_metric(struct rte *rt)
|
||||||
{
|
{
|
||||||
return ea_get_int(rt->attrs->eattrs, EA_RIP_METRIC, IGP_METRIC_UNKNOWN);
|
return ea_get_int(rt->attrs->eattrs, EA_RIP_METRIC, IGP_METRIC_UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
rip_rte_better(struct rte *new, struct rte *old)
|
||||||
|
{
|
||||||
|
return rip_rte_igp_metric(new) < rip_rte_igp_metric(old);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rip_postconfig(struct proto_config *CF)
|
rip_postconfig(struct proto_config *CF)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue