funny ECMP

Ingo Flaschberger if at
Tue Aug 24 00:33:06 UTC 2010

Dear Li,

nice to hear from you.

1st: i have send in a bugfix:

>> 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.

>> Example 1:
>> ifconfig em1 alias
>>  	ping ok
>> route add -weight 2
>>  	ping broken (arpresolve: can't allocate llinfo for
>  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.


Kind regards,
 	Ingo Flaschberger

More information about the freebsd-net mailing list