[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.
This commit is contained in:
Andrew J. Schorr 2006-06-30 03:21:05 +00:00
parent d7e60dd7a9
commit 7694787c19
2 changed files with 9 additions and 2 deletions

View File

@ -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:

View File

@ -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;