[quagga-dev 7939] Re: ospfd: connected routes not redistributed

Joakim Tjernlund joakim.tjernlund at transmode.se
Wed Apr 14 10:33:02 BST 2010


Roman Hoog Antink <rha at open.ch> wrote on 2010/04/14 09:32:02:
>
> On 13/04/10 19:41, Joakim Tjernlund wrote:
> > Thanks, how about this then(on top the others)?
> >
> > From fa30cdaac469086274ff3030cc0f885246b1ad6e Mon Sep 17 00:00:00 2001
> > From: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
> > Date: Tue, 13 Apr 2010 19:33:35 +0200
> > Subject: [PATCH] ospfd: Do not force refresh of external default route.
> >
> > ospf_distribute_list_update_timer() forces a refresh of
> > default route even when it hasn't changed while other
> > routes( static etc. ) are only refreshed as needed.
> > This makes default route refreash behave as any other external route.
> > ---
> >  ospfd/ospf_zebra.c |    4 +---
> >  1 files changed, 1 insertions(+), 3 deletions(-)
> >
> > diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
> > index 462f67c..efefd67 100644
> > --- a/ospfd/ospf_zebra.c
> > +++ b/ospfd/ospf_zebra.c
> > @@ -949,9 +949,7 @@ ospf_distribute_list_update_timer (struct thread *thread)
> >        for (rn = route_top (rt); rn; rn = route_next (rn))
> >     if ((ei = rn->info) != NULL)
> >       {
> > -       if (is_prefix_default (&ei->p))
> > -         ospf_external_lsa_refresh_default (ospf);
> > -       else if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
> > +       if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
> >           ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_IF_CHANGED);
> >         else
> >           ospf_external_lsa_originate (ospf, ei);
> > --
> > 1.6.4.4
> >
>
> I am not able to overlook the implications of that one. Surely it sounds good.
> I tried to test this. Switching "default-information originate" on and off
> still works, but it doesn't hit this code. Changing the redistribution access-
> list for static or connected routes naturally hits this code and shows no
> obvious malfunction. So I guess, this addon patch is worth including.

OK, nothing obviously wrong then.
I just sent 3 cleaned up patches with the changes you have tested.

BTW, with my patches applied it becomes over kill to call ospf_distribute_list_update()
multiple times as ospf_prefix_list_update()/ospf_filter_update() does (and possibly others too)
Not something I am going to bother with though.

      Jocke




More information about the Quagga-dev mailing list