[quagga-dev 11427] Re: Bugfix: DR change in OSPFv2.
equinox at opensourcerouting.org
Mon Aug 18 22:54:35 BST 2014
Ok, I'll mark this duplicate/closed then.
Thanks for checking on 0.99.23!
On Mon, Aug 18, 2014 at 01:01:59PM -0700, R Parameswaran wrote:
> Hi David,
> Thanks for the reply. Actually, this is fixed in 0.99.23, I have verified
> it now. It appears to have been fixed by the commit listed below (bug 761).
> I didn't catch it with a code comparison earlier because it is fixed
> differently from the diff I posted, and I had some obstacles getting to a
> stage where I could test 0.99.23.
> Test setup for this is quite simple, on a LAN, have a DR, a BDR, and third
> node, DUT, where DUT is ineligible for DR election (prio 0). Have some
> other routes behind the BDR, and then in steady state, power off or disable
> the DR. After the BDR takes over as DR, the DUT will lose all its routes to
> destinations which were behind the old BDR/new DR. On the DUT, the final
> state of the neighbor FSM (full -> full), and that of the Interface FSM
> (DROther->DROther) do not change across the perturbation, but the DR is now
> a different device.
> DR ------+---------BDR === other routes
> commit 7a9d983e4f961c2103f2cf82a51d5d8321ad0e43
> Author: Christian Franke <chris at opensourcerouting.org>
> Date: Wed Jul 10 11:56:18 2013 +0000
> ospfd: run DR election prior to LSA regeneration
> The results from DR election are used when constructing router-LSAs.
> E.g. they are used to determine whether a broadcast interface should
> be added with a link type of stub interface or transit interface.
> Therefore, we should run DR election prior before regenerating LSAs.
> Before commit c363d3861b5384a31465a72ddc3b0f6ff007a95a the DR election
> was called synchronously prior to router-LSA regeneration which was run
> This fixes bug #761 on the Quagga bugzilla.
> On Mon, Aug 18, 2014 at 3:54 AM, David Lamparter <
> david at opensourcerouting.org> wrote:
> > On Thu, Jul 31, 2014 at 02:09:05PM -0700, R Parameswaran wrote:
> > > Seeing this in the field, OSPFv2 routes behind a transit network become
> > > unreachable after a DR change on the LAN. Reason is that after a DR
> > change
> > > the router LSA is not being refreshed.
> > >
> > > In the existing code, Router LSA is correctly refreshed when neighbor's
> > > adjacency state changes (old state FULL vs new state), or if the local
> > > interface state changes, but the case where both of these did not change,
> > > but the DR itself changed seems to be missing and is fixed by this
> > patch. I
> > > tested this against 0.99.20, and the diff attached is against 0.99.20,
> > but
> > > the same issue seems to exist in 0.99.23 looking at the code. Diff
> > (-upwb)
> > > is attached and inlined below. Please let me know if the diff needs to be
> > > changed/formatted in any way.
> > Hi Ramkumar,
> > What exactly is the test scenario for this, i.e. how do you trigger the
> > DR change without an adjacency or interface state change?
> > -David
More information about the Quagga-dev