[quagga-dev 5113] Re: BUGFIX: Multiple ASBRs in ospf6d

paul at clubi.ie paul at clubi.ie
Mon Oct 22 19:34:44 BST 2007

Hi Phillip,

On Thu, 27 Sep 2007, Spagnolo, Phillip A wrote:

> The problem is as follows.  X and Y both redistribute routes for 
> routers 1 & 2 in AS 1 into an ospf6d AS2 network.  Router 3 has a 
> route to 1 through X because the route through Y is higher cost. 
> Next, the link between X and 3 breaks.  Router 3 does not remove 
> the route to 1 through X because of the check in the code below 
> (see FIXME).  This check does not exist in 0.98.x.  When I remove 
> this check from 0.99.x, it works fine.

> Is this correct?  Am I breaking something else?  Thanks.

It seems correct to me. It gets called after first-stage OSPF has 
done intra-area routes, and hence presumably the route to the ABR 
must be gone or !BEST.

ospf6_intra_brouter_calculation then calls the hook that calls the 

Conceptually too, it's hard to think why removing an entry should 
care - it seems to just be trying to avoid the LSDB walk, based on a 
false assumption. I think the worst than can happen is that it doesnt 
find any matching LSAs. ;)

Applied, thanks.

> void
> ospf6_asbr_lsentry_remove (struct ospf6_route *asbr_entry)
> {
>  struct ospf6_lsa *lsa;
>  u_int16_t type;
>  u_int32_t router;
> #ifndef BUGFIX
> //In the multiple ASBR case, this is causing old lower cost external
> lsas to
> //trump current external lsas with higher cost
>  if (! CHECK_FLAG (asbr_entry->flag, OSPF6_ROUTE_BEST)) //FIXME
>    {
>      char buf[16];
>      inet_ntop (AF_INET, &ADV_ROUTER_IN_PREFIX (&asbr_entry->prefix),
>                 buf, sizeof (buf));
>      zlog_info ("ignore non-best path: lsentry %s remove", buf);
>      return;
>    }
> #endif //BUGFIX
>  type = htons (OSPF6_LSTYPE_AS_EXTERNAL);
>  router = ospf6_linkstate_prefix_adv_router (&asbr_entry->prefix);
>  for (lsa = ospf6_lsdb_type_router_head (type, router, ospf6->lsdb);
>       lsa; lsa = ospf6_lsdb_type_router_next (type, router, lsa))
>    ospf6_asbr_lsa_remove (lsa);
> }
> Phil
> Phillip A. Spagnolo
> M&CT Network Technology
> Phantom Works
> 425-373-2810
> phillip.a.spagnolo at boeing.com
> _______________________________________________
> Quagga-dev mailing list
> Quagga-dev at lists.quagga.net
> http://lists.quagga.net/mailman/listinfo/quagga-dev

Paul Jakma	paul at clubi.ie	paul at jakma.org	Key ID: 64A2FF6A
In matters of principle, stand like a rock;
in matters of taste, swim with the current.
 		-- Thomas Jefferson

More information about the Quagga-dev mailing list