Minor correction to algorithm in section 6.4.2

Sowmya Krishnaswamy <[email protected]> Fri, 24 Jul 2009 11:09:59 -0700
Newsgroups gmane.ietf.vrrp
Message-ID <4719107E1341FA43A99472C6DEE4EF7E2007868394@US-EX01.ad.checkpoint.com>
Hi Steve,

There was a minor error in RFC 3768 which I think got carried over into the draft-ietf-vrrp-unified-spec-03.txt.



The VRRP election selects the VRRP router with the higher priority as the master and when the priorities of the VRRP routers are the same, the master is the VRRP router with highest IP address.



Let's take the case of 2 VRRP routers with equal priority (where priority is not 255) starting up at around the same time. As per the Section 6.4.1 both would start out in Backup state.

If the master down timer fires on the router with the lower IP addresses first, it would transition to Master state and send out an advertisement. If this VRRP advertisement is received by the other VRRP router while it's still in Backup state. As per Section 6.4.2 "if the priority in the advertisement is greater than or equal to the local priority then the master down timer is set to Master_Down_Interval". This effectively results in the router with the lower IP address remain in the master state.

This is inconsistent with the rule we would expect VRRP to use in electing the VRRP master.

The following section needs a minor re-write:

Section 6.4.2: Backup


- If an ADVERTISEMENT is received, then:

         + If the Priority in the ADVERTISEMENT is Zero, then:

            * Set the Master_Down_Timer to Skew_Time

         + else // pri non-zero

            * If Preempt_Mode is False, or If the Priority in the

            ADVERTISEMENT is greater than or equal to the local

            Priority, then:

               @ Set Master_Adver_Interval to Adver Interval contained

               in the ADVERTISEMENT.

               @ Recompute the Master_Down_Interval

               @ Reset the Master_Down_Timer to Master_Down_Interval

            * else // preempt was true or pri was less

               @ Discard the ADVERTISEMENT

            *endif // preempt test

         +endif // was pri zero?

-endif // was adv recv?

Section 6.4.2: Backup


- If an ADVERTISEMENT is received, then:

         + If the Priority in the ADVERTISEMENT is Zero, then:

            * Set the Master_Down_Timer to Skew_Time

         + else // pri non-zero

            * If Preempt_Mode is False, or If the Priority in the

            ADVERTISEMENT is greater than the local

            Priority, then:

               @ Set Master_Adver_Interval to Adver Interval contained

               in the ADVERTISEMENT.

               @ Recompute the Master_Down_Interval

               @ Reset the Master_Down_Timer to Master_Down_Interval

            * else // preempt was true or pri was less

               @ Discard the ADVERTISEMENT

            *endif // preempt test

         +endif // was pri zero?

-endif // was adv recv?

Thanks,
Sowmya

_______________________________________________
vrrp mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/vrrp