[Xorp-users] Unreachable default route.

Ben Greear greearb at candelatech.com
Wed Sep 26 20:37:17 PDT 2007


Pavlin Radoslavov wrote:
> Ben Greear <greearb at candelatech.com> wrote:
>
>   
>> Ok, I think this is working now...patch is attached.
>>
>> In addition to the 'unreachable' feature, this also includes the
>> hack to let the 'static' priority be set though an environment
>> variable, and a slight modification of the error logging for
>> receiving pkts not destined for this Xorp's interfaces.
>>
>> If it is more convenient, I can cut those extra two things
>> out of the patch, but I would also be happy if they went into
>> Xorp proper.  I understand the getenv hack is not a long term
>> solution, but it is better than nothing, and if the variable is
>> not set, you get the current default behaviour.
>>
>> Please look for 'TODO' in the patch, as I had a few questions
>> as to whether I did it right.  It seems to be working right on
>> Linux:
>>
>> 10.2.0.0/24 via 10.0.0.1 dev rddVR1  proto xorp  metric 2 notify
>> 10.0.0.0/24 dev rddVR1  scope link
>> 10.4.0.0/24 dev rddVR44  scope link
>> 10.1.0.0/24 via 10.4.0.2 dev rddVR44  proto xorp  metric 2 notify
>> 10.3.0.0/24 via 10.0.0.1 dev rddVR1  proto xorp  metric 2 notify
>> unreachable default  proto xorp  metric 1 notify
>>
>>
>> cfg-file snippets:
>>
>> interfaces {
>>      interface my_discard {
>>          unreachable: true
>>          vif my_discard {
>>          }
>>      }
>> }
>>
>> protocols {
>>      static {
>>          interface-route 0.0.0.0/0 {
>>              next-hop-interface: "my_discard"
>>              next-hop-vif: "my_discard"
>>          }
>>      }
>> }
>>     
>
> Ben,
>
> I committed your patch modulo some changes as described below:
>
> * In your patch there was a reference to RTF_UNREACHABLE.
>   This flag doesn't exist on BSD (actually Web search didn't return
>   any match), so I removed it.
>   
Ok, sounds fine.
> * I didn't commit the changes related to the "no vif found"
>   XLOG_WARNING() inside fea/data_plane/io/io_ip_socket.cc for the
>   following two reasons:
>   - Rate-limiting of warning messages should be implemented in a
>     generic way rather than adding extra code everywhere we might
>     have XLOG_WARNING() message.
>   - We don't want to have any hard-coding like "pif_index == 1",
>     because it might be true for Linux, but not in general.
>     Also, someone might be playing with the loopback interface and
>     might want to see the warning messages.
>   Said that, I think my preference is to change the XLOG_WARNING()
>   to XLOG_TRACE() so the log message can be explicitly enabled or
>   disabled as needed.
>   I haven't committed yet the XLOG_TRACE() change, pending to see
>   whether it will work for you.
>   
When I get interface add/deletion working, and the busy-spin in xorpsh 
fixed,
I plan to add bpf filters to the sockets, which should make that error 
message
truly an error.  Either way, I can keep a small patch in the code I use 
if needed.

> * I didn't commit any of the OSPF changes, because on closer
>   investigation there was no place where the "unreachable" flag for
>   a route was actually set.
>   After discussing it with Atanu, it is not clear what exactly means
>   to have "unreachable" support inside OSPF.
>   According to Atanu, OSPF uses internally the discard routes to add
>   them to the kernel when announcing aggregated routes.
>   If you have something specific in mind with regard to OSPF, please
>   discuss it with Atanu, and after that we can add it to XORP.
>   
Ok, that sounds fine too.
> * I didn't commit the getenv("XORP_RIB_STATIC_DISTANCE") hack,
>   because my preference is that we stay away from such hacks. Adding
>   it in one place will open the door to start doing the same
>   elsewhere.
>   Instead, you should keep pushing on us to implement it properly :)
>   Alternatively, you could submit the patch with the proper solution ;)
>   
For now, I'll keep the hack in my version of xorp.  The interface 
add/delete problems
are of higher priority, but I might get to working on this eventually if 
you don't
beat me to it.
> BTW, I tested it on both Linux and FreeBSD-6.2, and it seems to
> work. Nice job!
>   

Excellent!  Thanks for the help and for accepting the patch!

Ben

> Thanks,
> Pavlin
>   


-- 
Ben Greear <greearb at candelatech.com> 
Candela Technologies Inc  http://www.candelatech.com




More information about the Xorp-users mailing list