]> git.puffer.fish Git - mirror/frr.git/commit
pimd: Consider interface change a RPF_CHANGED event
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 Mar 2017 15:15:32 +0000 (11:15 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 Mar 2017 22:59:13 +0000 (18:59 -0400)
commitce2b6ce0984a6a0c7dbfccafeb1b440128f5c878
tree37c8e0c77c3b3fd311dcc46c599f177b616f3ce4
parentd0db90bf4453b635c1fe4935fcbefd0918b4fd51
pimd: Consider interface change a RPF_CHANGED event

Suppose you have a unnumbered ecmp connections between
two switches:

st1-l3# show ip pim neighbor
Interface         Neighbor    Uptime  Holdtime  DR Pri
swp52             6.0.0.10  00:00:01  00:00:29       1
swp53             6.0.0.10  00:00:06  00:00:26       1

And for a given (S,G) the RPF goes:
st1-l3# show ip nht
99.1.1.1
 resolved via bgp
 fe80::4e76:25ff:fee7:42d1, via swp52
 fe80::4e76:25ff:fee7:42d5, via swp53
 Client list: pim(fd 14)

Now suppose, 52 is the choosen RPF( since we can only pick one )
and the interface goes down.  As such we will choose to use
swp53.

The problem was that the pim_rpf_update call is made
it will change the rpf interface to 53, but not tell
the calling function that the RPF_CHANGED because
it is only looking at the rpf_addr(the nexthop)
to see if it is changed and if we are in an unnumbered
dual ecmp to the same box it was not detecting and
notifying.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_rpf.c