From: Donald Sharp Date: Tue, 22 Aug 2017 20:24:23 +0000 (-0400) Subject: eigrpd: Improve external route distance comparison X-Git-Tag: frr-4.0-dev~375^2~11 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=3aea4e507bc6c129e1bdcfbaaefca6a829ee1825;p=matthieu%2Ffrr.git eigrpd: Improve external route distance comparison If the new nexthop is external while the previous best was Internal or Connected, it should always loose. Signed-off-by: Donald Sharp --- diff --git a/eigrpd/eigrp_topology.c b/eigrpd/eigrp_topology.c index d1c09d6612..9f62e5e899 100644 --- a/eigrpd/eigrp_topology.c +++ b/eigrpd/eigrp_topology.c @@ -414,9 +414,13 @@ enum metric_change eigrp_topology_update_distance(struct eigrp_fsm_action_messag case EIGRP_EXT: { ext_data = msg->data.ipv4_ext_data; - if (eigrp_metrics_is_same(ext_data->metric, - entry->reported_metric)) - return change; + + if (prefix->nt == EIGRP_TOPOLOGY_TYPE_REMOTE_EXTERNAL) { + if (eigrp_metrics_is_same(ext_data->metric, + entry->reported_metric)) + return change; + } else + change = METRIC_INCREASE; break; }