On Thu, 1 Oct 2015, Christian Franke wrote:

I would also like to pose the following, possibly provocative, question, which might be an even stronger stand on ONLINK autodetection: Is this flag really needed?

That's a good question! :)

Couldn't Zebra just always set the rtnl onlink flag for nexthops that come in as NEXTHOP_IPV4_IFINDEX or NEXTHOP_IPV6_IFINDEX?

Is there any case where a routing protocol will send NEXTHOP_IPV4_IFINDEX or NEXTHOP_IPV6_IFINDEX to Zebra where not installing the route because of a failing onlink-check is the correct behavior?

Not having the flag sounds ideal. We want to try keep the semantics of ZServ as simple and clean as possible and free of clutter (Ok, it already has encoding crap and inconsistencies ;) ).

The model zebra has traditionally presented to clients is that IGPs must send routes for attached nexthops, and for BGP/EGP zebra will try recursively determine the next-hop if needs be. Then if zebra installs a route into the kernel, it is always with the nexthop zebra believes to be to an onlink, directly connected neighbour.

So on that basis, we don't really need an ONLINK flag in ZServ, do we? That would be redundant surely, at least in the sense of what the name of the flag suggests? (It may be needed to encode IP+ifindex next-hops in ZServ, but we have a flag for that, so I'm confused on that too).

And we don't need the flag in the RIB either, if zebra always is sending onlink routes - as you say, we could just set the flag, always.

Anything that could help simplify our RIB code would be a good thing... So if we can do that, +1 from me.

regardsm
--
Paul Jakma      [email protected]  @pjakma Key ID: 64A2FF6A
Fortune:
It wasn't that she had a rose in her teeth, exactly.  It was more like
the rose and the teeth were in the same glass.

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to