When the route doesn't have the specified gateway or nexthop it's scope
should be link(RT_SCOPE_LINK).
Otherwise it should be global(RT_SCOPE_UNIVERSE).

This is the problem in original XORP. Also how to tell XORP that there is no
nexthop in the following function call? 
 
bool XrlRibV0p1Client::send_add_interface_route4        (       const char *
dst_xrl_target_name,
                const string &          protocol,
                const bool &    unicast,
                const bool &    multicast,
                const IPv4Net &         network,
                const IPv4 &    nexthop,
                const string &          ifname,
                const string &          vifname,
                const uint32_t &        metric,
                const XrlAtomList &     policytags,
                const AddInterfaceRoute4CB &    cb 
        )       

Jiangxin

-----Original Message-----
From: Igor Maravic [mailto:[email protected]] 
Sent: Tuesday, June 12, 2012 8:25 AM
To: Jiangxin Hu
Cc: Ben Greear; [email protected]
Subject: Re: [Xorp-hackers] XORP enhancement for wireless mesh network
routing

I've just tested. There is NO restriction when adding interface route.
I even wrote the tests to confirm that.
Also You can test my claim by adding interface route via static routes!
Only there is a catch.

If your neighboring router have address 192.168.3.1, and you want to have
all routes for 192.168.3.0/24 go via that router, you first have to add
192.168.3.1/32 interface route, and after that to add 192.168.3.0/24 route.
This is configuration to do that.
---
protocols {
        static {
            interface-route 192.168.3.1/32 {
                next-hop-interface: "eth2"
                next-hop-vif: "eth2"
            }
            interface-route 192.168.3.0/32 {
                next-hop-interface: "eth2"
                next-hop-vif: "eth2"
                next-hop-router: 192.168.3.1
            }
        }
    }
---

There was a problem with registering those routes in fea, but I fixed that
problem. I'm sending that patch to the list. Patches for enabling rib test,
you can find on my github.
BR
Igor

2012/6/8 Jiangxin Hu <[email protected]>:
> The restriction for subnetwork still there even you use 
> add_interface_route function.
>
> The protocol should specify which interface a route go for. The 
> current XORP-OLSR does not do this.
>
> By the way, I found to delete a wireless route also has problem.
>
> Jiangxin
>
> -----Original Message-----
> From: Igor Maravic [mailto:[email protected]]
> Sent: Friday, June 08, 2012 9:51 AM
> To: Ben Greear
> Cc: Jiangxin Hu; [email protected]
> Subject: Re: [Xorp-hackers] XORP enhancement for wireless mesh network 
> routing
>
> Going through the code I found function:
>
> add_interface_route in RIB's xrl. With that function, route is 
> directly added to the specified interface, no questions asked.
>
> If the OLSR would use that function it could add route as directly 
> connected without any problem. Because I don't know any thing much 
> about OLSR, I have to ask this - Does the route should be added to the 
> interface from which it received advertisement?
>
> If that is the case, interface name could be propagated through the 
> code, and instead of calling send_add_route, OLSR could call 
> send_add_interface_route, with appropriate vif name.
> BR
> Igor
>
> 2012/6/1 Ben Greear <[email protected]>:
>> On 06/01/2012 02:09 PM, Igor Maravic wrote:
>>>>
>>>> Igor:  Why should we ever restrict adding the connected routes?
>>>>
>>>> It seems to me that if the routing protocol wants it added, fea 
>>>> should just do so.  But maybe I'm missing something?
>>>>
>>>
>>> When the route comes to the RIB, if it isn't recognized as direct 
>>> route, RIB assumes that this route is external one.
>>> This happens with BGP routes, because their nexthop is external.
>>>
>>> Because of that it will try to resolve the nexthop for that route 
>>> with existing IGP routes.
>>>
>>> The BGP routes can't be resolved, if this behavior is overridden.
>>>
>>> Thus I think that the best solution would be if the OLSR would tell 
>>> the RIB to add directly connected route.
>>> This will resolve the problem of RIB recognizing OLSR routes as
external.
>>> My proposition is to add function add_direct_route, that would be 
>>> called via xrl from OLSR, the same way as add_route is called now.
>>> But that function would be in any doubt if it should resolve route 
>>> as external or not.
>>>
>>> Maybe it is possible to check if route is resolved for wireless 
>>> link, or not, from the add_route function, without braking the BGP 
>>> route resolution, but I think that would stress out a performance 
>>> dramatically. This is due the fact that before resolving any BGP 
>>> route it would pass through all vifs to check if they are wireless 
>>> or not (according to Jiangxin
>>> patch)
>>
>>
>> Ok, I haven't looked at this stuff in a while (and perhaps never in 
>> great detail), so a new method: add_direct_route seems good to me.
>>
>> Better than changing behaviour based on an interface flag I think.
>>
>> Thanks,
>> Ben
>>
>>>
>>> BR
>>> Igor
>>
>>
>>
>> --
>> Ben Greear <[email protected]>
>> Candela Technologies Inc  http://www.candelatech.com
>>
>


_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers

Reply via email to