From: Andrew J. Schorr Date: Fri, 30 Jun 2006 03:21:05 +0000 (+0000) Subject: [ospfd] Avoid getting NSM stuck in ExStart by using local view of DR/BDR X-Git-Tag: frr-2.0-rc1~2656 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=7694787c190e3737d6fc3e15b7e098ce76ed61a2;p=mirror%2Ffrr.git [ospfd] Avoid getting NSM stuck in ExStart by using local view of DR/BDR 2006-06-29 Andrew J. Schorr * 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. --- diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index f045c1d18a..3975b07aef 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,10 @@ +2006-06-29 Andrew J. Schorr + + * 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 * ospfd.h: Define 2 new struct ospf config flags: diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 878ab56798..df9a525107 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;