]> git.puffer.fish Git - mirror/frr.git/commit
pimd: Stop DR election on every hello
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 16 Jun 2015 20:19:56 +0000 (13:19 -0700)
committerDonald Sharp <sharpd@cumulusnetwroks.com>
Thu, 26 May 2016 00:38:33 +0000 (20:38 -0400)
commitf6f9c0094a4e7ec2ab6d3ebcd10e4f9a763e1b7f
tree0333c4470988cc4e7dae0fe22b86dce57e0bb41a
parent818a327c242d0bb6c2e5ac4daad5f58c9cb11262
pimd: Stop DR election on every hello

The DR election is occurring on every hello received.
This is because the hello receive packet returns a 0
for any successfully received packet.  PIMD then looked
at the 0 returned and did a DR election.

Code was inspected for the cases where DR should happen:
(A) Interface ip address change
(B) DR priority in hello packet changes
(C) Received a new neighbor on an interface
(D) Neighbor timer pops.

Each of these initiate a DR election in the code currently.

Testing was initiated on a pim network:
tor-11# show ip pim designated-router
NonPri: Number of neighbors missing DR Priority hello option

Interface Address         DR              Uptime   Elections Changes NonPri
br1       20.0.15.1       20.0.15.1       00:08:16         1       1      0
swp1      169.254.0.10    169.254.0.10    00:08:16         2       1      0
swp2      169.254.0.26    169.254.0.26    00:08:16         2       1      0
tor-11#

As you can see Elections == 2.  This is because pimd performs
an election on (A) and (C) above.  I see no need to modify
(A) to check if we have any knowledge of the interface before
this call.

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