[quagga-dev 10869] Re: [PATCH 2/4] zebra: quagga-re-onlink-support.patch

Joakim Tjernlund joakim.tjernlund at transmode.se
Tue Oct 29 12:40:55 GMT 2013


Christian Franke <chris at opensourcerouting.org> wrote on 2013/10/29 
12:39:40:
> 
> On 10/26/2013 05:39 PM, Joakim Tjernlund wrote:
> > Christian Franke <nobody at nowhere.ws> wrote on 2013/10/24 16:45:58:
> >> Quagga master supports NEXTHOP_IPV4_IFINDEX properly, so the only 
thing
> >> that still has to be done on top of this patch would be adding a way
> >> that allows routing daemons to set the NEXTHOP_FLAG_ONLINK via the 
IPC
> >> protocol. (I only required that flag internally in zebra to address 
the
> >> case of some recursive routes. Therefore, the patch didn't add a way 
to
> >> set that flag via IPC, that shouldn't be too complicated though.)
> > 
> > Would it have be explicit? Maybe it can be worked out "automagically"?
> > If the networks don't match, just add ONLINK attribute ?
> 
> If I understand you correctly, you suggest that:
> A ZEBRA_NEXTHOP_IPV4_IFINDEX should never be considered inactive as long
> as the interface is present. Rather, if the IP address doesn't concur
> with any configured IP-network on the interface, we should set onlink.

Yes, just an idea that needs some thought.

> 
> Although I feel like this might cause unexpected results, I couldn't
> come up with an example of a problematic case, so it might viable to do
> it that way.

We could limit this to /32 masks(aka unnumbered) to begin with if that
is the only need today.

> 
> One question that comes to my mind, though: Wouldn't it then be easier
> to just always set onlink when we encounter ZEBRA_NEXTHOP_IPV4_IFINDEX?
> The only difference that I see is that a route installed without onlink
> will be removed from the FIB when the matching IP-Network is
> deconfigured from the outgoing interface.
> In that case, Zebra would notice that the route is gone and readd it
> with onlink set if your suggested change was implemented, wouldn't it?

hmm, will Q mess with routes that wasn't added by Q in the first place?
Or am I misreading this?

 Jocke




More information about the Quagga-dev mailing list