diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2004-07-28 17:10:16 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2004-07-28 17:10:16 +0000 |
commit | 953666701c83d79c01d0ce862cd14f2120a66b7c (patch) | |
tree | 01d8ccb1288b03e026ed0f604e1890d5e0d62122 | |
parent | eb6b5c0fcf9982d3d0c22b080dadcf5f00f8cc1b (diff) |
Prefer the path with the lowest multi-exit discriminator (MED) not the biggest.
-rw-r--r-- | usr.sbin/bgpd/rde_decide.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/usr.sbin/bgpd/rde_decide.c b/usr.sbin/bgpd/rde_decide.c index 770a4aefd4f..e42f58c36d4 100644 --- a/usr.sbin/bgpd/rde_decide.c +++ b/usr.sbin/bgpd/rde_decide.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde_decide.c,v 1.35 2004/06/22 23:17:01 claudio Exp $ */ +/* $OpenBSD: rde_decide.c,v 1.36 2004/07/28 17:10:15 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org> @@ -120,8 +120,8 @@ prefix_cmp(struct prefix *p1, struct prefix *p2) asp1 = p1->aspath; asp2 = p2->aspath; - /* 1. check if prefix is eligible a.k.a reachable */ + /* 1. check if prefix is eligible a.k.a reachable */ if (asp2->nexthop->state != NEXTHOP_REACH) return (1); if (asp1->nexthop->state != NEXTHOP_REACH) @@ -144,9 +144,9 @@ prefix_cmp(struct prefix *p1, struct prefix *p2) /* 5. MED decision, only comparable between the same neighboring AS */ if (aspath_neighbor(asp1->flags.aspath) == aspath_neighbor(asp2->flags.aspath)) - /* the bigger, the better */ - if ((asp1->flags.med - asp2->flags.med) != 0) - return (asp1->flags.med - asp2->flags.med); + /* lowest value wins */ + if ((asp2->flags.med - asp1->flags.med) != 0) + return (asp2->flags.med - asp1->flags.med); /* * 6. EBGP is cooler than IBGP |