Routing enhancement - reduce routing table locking

Li, Qing qing.li at bluecoat.com
Tue Apr 5 15:55:30 UTC 2011


I see,

What you are saying is the "rtalloc()" call does not have an indicator whether it should be searching
for an interface route or not. 

In the case when RADIX_MPATH is enabled, in_lltable_rtcheck() needs to walk the ECMP route chain
to find an interface route.

yes ?

-- Qing

________________________________________
From: owner-freebsd-net at freebsd.org [owner-freebsd-net at freebsd.org] on behalf of Ingo Flaschberger [if at freebsd.org]
Sent: Tuesday, April 05, 2011 8:31 AM
Cc: Nikolay Denev; freebsd-net at freebsd.org
Subject: Re: Routing enhancement - reduce routing table locking

>> Can you say something more about :
>>    "implement some multipath changes to use a direct attached
>>      interface route and a real route, used some OpenBSD code"
>>
>> I've looked at the patch but it's not obvious to me.
>>
>> P.S.: I've just saw your reply to kern/155772 and was wondering if this
>> patch can help.
>
> regarding kern/155772:
> at stock 8.2 FreeBSD the system panics after ifconfig down / ifconfig up /
> ifconfig down with 1 route and 1 interface route (multipath).
>
> Also there are problems with arp, due wrong multipath route selection
> (if the decision is already made that the route should go the direct way, the
> route and not the interface route is choosen, depends on which route was
> first in the tree).

see "in_lltable_rtcheck"

> And finally, there are problems when adding / deleteing routes.
>
> example that does not work:
> ifconfig em0 192.168.0.1/24
> ifconfig em1 10.0.0.1/24
> route add 10.0.0.0/24 192.168.0.2
>
> example that currently works with 8.2:
> ifconfig em0 192.168.0.1/24
> ifconfig em1 10.0.0.1/24
> route add 172.16.0.0/24 192.168.0.2
> route add 172.16.0.0/24 10.0.0.2
>
> Kind regards,
>       Ingo Flaschberger


More information about the freebsd-net mailing list