[prev in list] [next in list] [prev in thread] [next in thread] 

List:       zebra
Subject:    [zebra 19217] Re: Equal cost multi-path problem
From:       Paul Jakma <paulj () alphyra ! ie>
Date:       2003-05-30 17:56:52
[Download RAW message or body]

On Thu, 29 May 2003, kamatchi soundaram wrote:

> Hi,
> 
> I didn't get your previous mail. Could you send it again!!

disregard.. i was completely wrong, either too little or too much
coffee.

it is indeed a problem, i remember seeing it once even.

> Well!!.. would you suggest any other solution for the above problem??

when you change the cost of an interface, ospf_router_lsa_timer_add
(oi->area) should be called, to recalculate the area->router_lsa_self,
and hence the entire spf tree for that area. ospf_router_lsa_timer()
calls ospf_router_lsa_refresh (area->router_lsa_self), which calls
ospf_router_lsa_new(area), which should return a new router_lsa, with
the LSAs updated with proper costs, then ospf_lsa_install (area->ospf,
NULL, new) is called, which should in theory detect the LSA is
different, (by means of ospf_lsa_different()) and hence should call
ospf_router_lsa_install() with rt_recalc set to 1, so that the SPF tree is
recalculated.

so either...

- the new router_lsa_self generated by ospf_router_lsa_new() (from
  ospf_router_lsa_refresh()) and then passed to  ospf_lsa_install() does
  not have the cost updated. (or is not different enough for
  ospf_lsa_different() to detect it is different, though it does a
  memcmp as last resort. so..)

- or is there some other problem in ospf_lsa_install, which is causing
  it to call ospf_router_lsa_install() without rt_recalc set to 1.

the problem is in that path somewhere anyway, somewhere between
ospf_router_lsa_timer_add(oi->area) and the end of ospf_lsa_install(),
and thats where the fix needs to be made (not in ospf_spf.c)

regards,
-- 
Paul Jakma	Sys Admin	Alphyra
	paulj@alphyra.ie
Warning: /never/ send email to spam@dishone.st or trap@dishone.st



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic