Donald,

The DR election on hello messages is actually needed.

It entered the code as a fix reported by a pimd user.

I can't remember the reasoning, but I could find the commit which fixed the
issue:


On Tue, Jun 16, 2015 at 5:26 PM, Donald Sharp <[email protected]>
wrote:

> 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.
> ---
>  pimd/pim_pim.c |    3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c
> index f6f4c95..adcb296 100644
> --- a/pimd/pim_pim.c
> +++ b/pimd/pim_pim.c
> @@ -212,9 +212,6 @@ int pim_pim_packet(struct interface *ifp, uint8_t
> *buf, size_t len)
>                   ip_hdr->ip_src,
>                   pim_msg + PIM_MSG_HEADER_LEN,
>                   pim_msg_len - PIM_MSG_HEADER_LEN);
> -    if (!result) {
> -      pim_if_dr_election(ifp); /* PIM Hello message is received */
> -    }
>      return result;
>    }
>
> --
> 1.7.10.4
>
>
> _______________________________________________
> Quagga-dev mailing list
> [email protected]
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to