]> git.proxmox.com Git - mirror_frr.git/commit - pimd/pim_register.c
pimd: Pim Nexthop Tracking support with ECMP
authorChirag Shah <chirag@cumulusnetworks.com>
Wed, 5 Apr 2017 20:14:12 +0000 (13:14 -0700)
committerChirag Shah <chirag@cumulusnetworks.com>
Tue, 25 Apr 2017 19:51:18 +0000 (12:51 -0700)
commit633988a70de057e0c0c1cf5fb8c745557f8f5c3d
tree06be3f79fcdb61e14ab0c7f146e586f4b3a400d1
parentc276c5657c9bf2d7efcf2a53fc01695cffd0ca15
pimd: Pim Nexthop Tracking support with ECMP

In this patch, PIM nexthop tracking uses locally populated nexthop cached list
to determine ECMP based nexthop (w/ ECMP knob enabled), otherwise picks
the first nexthop as RPF.
Introduced '[no] ip pim ecmp' command to enable/disable PIM ECMP knob.
By default, PIM ECMP is disabled.
Intorudced '[no] ip pim ecmp rebalance' command to provide existing mcache
entry to switch new path based on hash chosen path.
Introduced, show command to display pim registered addresses and respective nexthops.
Introuduce, show command to find nexthop and out interface for (S,G) or (RP,G).
Re-Register an address with nexthop when Interface UP event received,
to ensure the PIM nexthop cache is updated (being PIM enabled).
During PIM neighbor UP, traverse all RPs and Upstreams nexthop and determine, if
any of nexthop's IPv4 address changes/resolves due to neigbor UP event.

Testing Done: Run various LHR, RP and FHR related cases to resolve RPF using
nexthop cache with ECMP knob disabled, performed interface/PIM neighbor flap events.
Executed pim-smoke with knob disabled.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
(cherry picked from commit cba444817883b8b3b22a7ed9958dc9ed77f76230)
15 files changed:
pimd/pim_cmd.c
pimd/pim_iface.c
pimd/pim_mroute.c
pimd/pim_neighbor.c
pimd/pim_nht.c
pimd/pim_nht.h
pimd/pim_oil.c
pimd/pim_register.c
pimd/pim_rp.c
pimd/pim_rp.h
pimd/pim_rpf.c
pimd/pim_upstream.c
pimd/pim_zebra.c
pimd/pimd.c
pimd/pimd.h