Subject: Re: DR & BDR Election

From: wu min <[email-masked]>
Date: Mon, 27 May 2002 13:37:29 +0000

Hi Yasu,

I have more questions.

Below is the convention used to describe part of the interface state of a
router for the following scenario:

+---------+--------+
|Router ID|Priority|
+---------+--------+
|        DR        |
+------------------+
|        BDR       |
+------------------+

Scenario
========

Note: Each box represents each router indicated by the router id field.

                                                new comer
    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+
    |A|5|    |B|3|    |C|4|    |D|1|    |E|2|    |X|6|
    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+
    | A |    | A |    | A |    | A |    | A |    | X |
    +---+    +---+    +---+    +---+    +---+    +---+
    | C |    | C |    | C |    | C |    | C |    | - |
    +---+    +---+    +---+    +---+    +---+    +---+
                        [Figure 1]

                            |
       Every router broadcasts its own Hello packet
       and those packets are received by every other
             router just about the same time
                            |
                            V

   *+-+-+   *+-+-+   *+-+-+   *+-+-+   *+-+-+   *+-+-+(i)
    |A|5|    |B|3|    |C|4|    |D|1|    |E|2|    |X|6|
    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+    +-+-+
    | X |    | X |    | X |    | X |    | X |    | X |
    +---+    +---+    +---+    +---+    +---+    +---+
    | C |    | C |    | C |    | C |    | C |    | C |
    +---+    +---+    +---+    +---+    +---+    +---+
      | (ii)
      V
    +-+-+(iii)
    |A|5|
    +-+-+
    | X |
    +---+
    | C |
    +---+
                        [Figure 2]

In figure 1, a new router, X, appears.

In figure 2, every router see new router(s) appears and all trigger
NeighbourChange event (indicated by * at the top-left of each box), thus
each begins calculating and as the result every router nominates X as the
new DR and C as BDR.

Note:
(i)   At step (2) it found router C should be elected as BDR.
      At step (3) it still found itself a DR so need not
      repeat steps (2) and (3).
(ii)  Repeat steps (2) and (3) since it is now stripped off
      from DR post.
(iii) However its view about DR and BDR never change.

Question
---------
I have doubt with (ii) and (iii). Should router A have placed itself in BDR
candidates list before recalculating steps (2) and (3) or just allow router
C to retain its BDR post?

>An OSPF router never compares his DR/BDR view with the other's. The
>OSPF router only cares about the other's *change* of DR/BDR view, by
>storing and comparing the other router's previous DR/BDR view. Every
>time the change detected, the router generates NeighborChange event(s).

Thank you for pointing out this.

>An OSPF router repeats steps (2) and (3) every time if his DR/BDR
>view has been changed. It is needed because it means previous
>condition of (2) & (3)has been changed, so the results of the previous
>processes (2) & (3) are recognized as obsolete.

I can understand why a newly designated DR needs to repeat steps (2) and
(3). Those steps avoid the router from claiming to be DR and BDR at one
time. However I cannot see why *repetition* of those steps are required for
a router that self-nominate as BDR, resigning from BDR, or resigning from
DR, as indicated by step (4) because even after the recalculation, its view
will never change. Do I miss any important point here?

Thank you in advance.

-Tze Ven

_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com

---

From: Yasuhiro Ohara <[email-masked]>
Date: Tue, 28 May 2002 15:45:15 +0900

> C to retain its BDR post?

In my understanding, an implementation strictly following RFC2328 will
do latter: just allow router C to retain its BDR post. The next BDR
view of the segment depends on whether A will declare itself as BDR or
not.

> will never change. Do I miss any important point here?

I can't think of a situation where the 2nd calculation of DR (2nd (3))
is necessary ... (I want someone to teach me ...)

But obviously 2nd calculation of BDR (2nd (2)) is necessary, see
below:

# note: RFC2328 9.4 (2) describes BDR calculation, (3) describes DR
#       calculation

                            new comer
            +-+-+    +-+-+    +-+-+
            |A|1|    |B|0|    |C|2|
            +-+-+    +-+-+    +-+-+
            | A |    | A |    | C |
            +---+    +---+    +---+
            | - |    | - |    | - |
            +---+    +---+    +---+

 after        C
1st (2)(3)    -

 after        C
2nd (2)       A

Router B has priority 0 so he is not eligible to become neither DR nor
BDR. So before the newcomer comes, the segment's DR is A and BDR is
none.

Looking into A's calculation, After the newcomer has come and just
after 1st calculation of DR/BDR, A has just resigned DR but he's
yet eligible to become BDR. If we don't recalculate BDR/DR again,
A cannot realize that he can be BDR.

regards.
yasu