Subject: priority based DR election in new draft

From: "Sundeep Singatwaria" <[email-masked]>
Date: Wed, 4 Jul 2001 15:20:02 -0700

4.6.1 section (sending hello msgs)  says -

This is necessary
because priority-based DR election is only enabled when all neighbors on
an interface advertise that they are capable of using the DR Election
Priority Option.

To be consistent with above - psuedo - code for DR election on page 65
should be changed to -

host
  DR(I) {
      dr = me
/* ADD */
priority_based_dr_election_flag = FALSE
if (priority_based_dr_election() == TRUE)
     priority_based_dr_election_flag = TRUE
/* ADD TILL HERE */

      for each neighbor on interface I {
          if ( dr_is_better( neighbor, dr, I ) == TRUE ) {
              dr = neighbor
          }
      }
      return dr
  }

  bool
  dr_is_better(a,b,I) {
      if( priority_based_dr_election_flag is FALSE) {  /* change */
          return a.ip_address > b.ip_address
      } else {
          return ( a.dr_priority > b.dr_priority ) OR
              ( a.dr_priority == b.dr_priority AND
                   a.ip_address > b.ip_address )
      }
  }

/* add */
bool
priority_based_dr_election()  {
   for each neighbor on interface I {
     if(neighbor.dr_priority present is false)
         return FALSE
     }
     return TRUE
}
/* add till here */

Sundeep