Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Aug 2010 02:33:03 +0200 (CEST)
From:      Ingo Flaschberger <if@xip.at>
To:        "Li, Qing" <qing.li@bluecoat.com>
Cc:        net@freebsd.org
Subject:   RE: funny ECMP
Message-ID:  <alpine.LFD.2.00.1008240223240.12708@filebunker.xip.at>
In-Reply-To: <B583FBF374231F4A89607B4D08578A4307F1FC70@bcs-mail03.internal.cacheflow.com>
References:  <alpine.LFD.2.00.1008230154280.29368@filebunker.xip.at> <alpine.LFD.2.00.1008240144350.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FC70@bcs-mail03.internal.cacheflow.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Dear Li,

nice to hear from you.

1st: i have send in a bugfix:
http://www.freebsd.org/cgi/query-pr.cgi?pr=149917

>>
>> I have changed the route selection code of ecmp to
>> balance only between routes of the same weight.
>> (see attached file)
>
>> As Qing Li mentioned months ago, there are problems with static routes
>> and interfaces.
>>
>
>  Do you have the exact link to the email thread?
>  There were no pending ECMP related issues since my last round of
> commits
>  as far as I can remember.

http://lists.freebsd.org/pipermail/freebsd-net/2010-January/024420.html
http://lists.freebsd.org/pipermail/freebsd-net/2010-February/024539.html

>> Example 1:
>> ifconfig em1 alias 10.13.13.90/24
>>  	ping 10.13.13.95 ok
>> route add 10.13.13.0/24 10.11.11.1 -weight 2
>>  	ping 10.13.13.95 broken (arpresolve: can't allocate llinfo for
>>  				10.13.13.95)
>>
>
>  Could you please explain a bit on exactly what you try to
>  accomplish here with this configuration?

rebuilding my core-routers.
it's a very special setup:

2 redundat core routers, connected via ospf (quagga),
vrrp to server-side.
currently I use a very modfied ucarp version because freebsd 6 only allows 
on route.
problem is with standard freebsd and carp, that there is at the failover 
router a via ospf received route 
to the server-side interface. when now carp tries to add the route during 
failover, it fails. and seconds later the ospf route times out.

so, i hoped to use carp, quagga and freebsd ecmp to be able to avoid this 
problems now.
so I need route-merics (weights?) to prefer direct interface routes 
(connected) before static ones.
perhaps I also need to change quagga to send also the merics to the 
kernel, as in differnce to, for example, cisco router, connected and 
static routes have the same weight.

>> deleting the last static multipath routes seems to affect?, destroy?
>> the interface route.
>> system crashes in:
>> /usr/src/sys/net/route.c:370
>>          rn = rnh->rnh_matchaddr(dst, rnh);
>>          if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) {
>>                  newrt = rt = RNTORT(rn);
>> here ->         RT_LOCK(newrt);
>>                  RT_ADDREF(newrt);
>>                  if (needlock)
>>
>
>  I will take a look.

thanks.

Kind regards,
 	Ingo Flaschberger




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.LFD.2.00.1008240223240.12708>