diff options
| author | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2006-06-30 03:21:05 +0000 | 
|---|---|---|
| committer | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2006-06-30 03:21:05 +0000 | 
| commit | 7694787c190e3737d6fc3e15b7e098ce76ed61a2 (patch) | |
| tree | 84b1815e7a268b8babd2cac4b37edf6ac98dc221 | |
| parent | d7e60dd7a9f0213aaa82d256a78ab74887946e53 (diff) | |
[ospfd] Avoid getting NSM stuck in ExStart by using local view of DR/BDR
2006-06-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_nsm.c: (nsm_twoway_received) When deciding whether to
	  change from state Init to ExStart, the test for whether the
	  neighboring router is DR or BDR should be against the
	  local router's notion of DR/BDR, not the neighbor's view.
| -rw-r--r-- | ospfd/ChangeLog | 7 | ||||
| -rw-r--r-- | ospfd/ospf_nsm.c | 4 | 
2 files changed, 9 insertions, 2 deletions
| diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index f045c1d1..3975b07a 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,10 @@ +2006-06-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu> + +	* ospf_nsm.c: (nsm_twoway_received) When deciding whether to +	  change from state Init to ExStart, the test for whether the +	  neighboring router is DR or BDR should be against the +	  local router's notion of DR/BDR, not the neighbor's view. +  2006-06-28 Erik Muller <erikm@internap.com>  	* ospfd.h: Define 2 new struct ospf config flags: diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 878ab567..df9a5251 100644 --- a/ospfd/ospf_nsm.c +++ b/ospfd/ospf_nsm.c @@ -203,8 +203,8 @@ nsm_twoway_received (struct ospf_neighbor *nbr)      next_state = NSM_ExStart;    /* Neighboring Router is the DRouter or the BDRouter. */ -  if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->d_router) || -      IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->bd_router)) +  if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR(oi)) || +      IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR(oi)))      next_state = NSM_ExStart;    return next_state; | 
