]> git.puffer.fish Git - matthieu/frr.git/commit
ripd: add ECMP support
authorLu Feng <lu.feng@6wind.com>
Fri, 18 Jul 2014 06:13:18 +0000 (06:13 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Thu, 26 May 2016 17:11:05 +0000 (17:11 +0000)
commitbce8e8681a4874fe6e5e126a25f4286563bf930b
tree3ffa9d41c17e11f5e21a53d2b4542e0ee097f350
parent9bc6875ad65c22b4008dca0b572ae5b192f2bf91
ripd: add ECMP support

* Each node in the routing table is changed into a list, holding
  the multiple equal-cost paths.

* If one of the multiple entries gets less-preferred (greater
  metric or greater distance), it will be directly deleted instead
  of starting a garbage-collection timer for it.
  The garbage-collection timer is started only when the last entry
  in the list gets INFINITY.

* Some new functions are used to maintain the ECMP list. And hence
  rip_rte_process(), rip_redistribute_add() and rip_timeout() are
  significantly simplified.

* rip_zebra_ipv4_add() and rip_zebra_ipv4_delete() now can share
  the common code. The common part is moved to rip_zebra_ipv4_send().

Signed-off-by: Feng Lu <lu.feng@6wind.com>
Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit b397cf4f0fc484c5ebfc8a680090055c8e6cbe32)

Conflicts:
ripd/rip_zebra.c
ripd/rip_interface.c
ripd/rip_zebra.c
ripd/ripd.c
ripd/ripd.h