[Olsr-dev] Multipath routing in OLSRD

Hannes Gredler (spam-protected)
Tue Apr 28 09:55:04 CEST 2009

Adam Nowak wrote:
> Hello,
> I'm new to this list, and to all the olsr stuff too. Sorry, if I'm asking  
> about well known issues. I'm interested in implementing multipath  
> extension to OLSRd. At first, I'd like to add some alternative routes to  
> the same destination (route entries which has the same destination but  
> other next-hops). As I've noticed in the code, there is the entry  
> "rt_best" which is responsible for selecting best route. I don't  
> understand, how OLSRd interacts with system routing table in  
> olsr_update_rib_routes() function, can you help me work it out or give  
> some advices?
> Any help would be appreciated!

hi adam,

you need to touch a couple of data structures to make equal cost multipath
(ECMP) happen.

- rework all nexthop pointers to a nexthop list (use common/list.h) for this

- change olsr_spf_relax() to merge next-hops lists if the cost is equal
   (today equal costs are ignored).

- you do not need to change much the rt_best() election procedure -
   it just figures out what the best originator for a given prefix is.
   (it would then point to a chain of nexthops)

- rework add/chg/del kernel route functions to operate on nexthop lists

- rework the OS dependend parts (e.g. src/linux/kernel_routes)
   to install/delete more than one nexthop when manipulating routes.



More information about the Olsr-dev mailing list