ECMP/multipath support

Joakim Tjernlund joakim.tjernlund at transmode.se
Tue Dec 21 10:08:07 CET 2010


Ondrej Zajicek <santiago at crfreenet.org> wrote on 2010/12/21 00:27:44:
>
> On Fri, Dec 17, 2010 at 02:02:07PM +0100, Joakim Tjernlund wrote:
> > >
> > > Something like this. It is not tested at all and and very simple.
> >
> > Here is version 2, even simpler :)
>
> That is nice, makes several things simpler. I will merge that,
> with some minor modifications.

Found a bug, here is a fix:

---
 proto/ospf/topology.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c
index 32fcc5e..94847f8 100644
--- a/proto/ospf/topology.c
+++ b/proto/ospf/topology.c
@@ -228,7 +228,7 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)

   WALK_LIST(ifa, po->iface_list)
   {
-    int net_lsa = 0;
+    int net_lsa = 0, rt_pos = ~0;

     if ((ifa->type == OSPF_IT_VLINK) && (ifa->voa == oa) &&
 	(!EMPTY_LIST(ifa->neigh_list)))
@@ -254,6 +254,7 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
 	    ifa->iface->index : ipa_to_u32(ifa->addr->ip);
 	  ln->metric = ifa->cost;
 	  ln->padding = 0;
+	  rt_pos = i;
 	  i++;
 	}
 	break;
@@ -268,6 +269,7 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
 	    ln->data = ipa_to_u32(ifa->addr->ip);
 	    ln->metric = ifa->cost;
 	    ln->padding = 0;
+	    rt_pos = i;
 	    i++;
 	    net_lsa = 1;
 	  }
@@ -283,6 +285,7 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
 	  ln->data = ipa_to_u32(ifa->addr->ip);
 	  ln->metric = ifa->cost;
 	  ln->padding = 0;
+	  rt_pos = i;
 	  i++;
         }
         break;
@@ -291,7 +294,7 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
         log("Unknown interface type %s", ifa->iface->name);
         break;
       }
-    ospf_lsa_pos_set(i, ifa);
+    ospf_lsa_pos_set(rt_pos, ifa);
     /* Now we will originate stub area if there is no primary */
     if (net_lsa ||
 	(ifa->type == OSPF_IT_VLINK) ||
--
1.7.2.5




More information about the Bird-users mailing list