[quagga-dev 10370] Re: [PATCH] ospfd: restore nexthop IP for p2p interfaces

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Mar 21 22:27:34 GMT 2013

James Li <jli at cumulusnetworks.com> wrote on 2013/03/21 19:45:09:
> On 3/21/13 11:23 AM, Joakim Tjernlund wrote:
> > James Li <jli at cumulusnetworks.com> wrote on 2013/03/21 17:53:08:
> >> On 3/21/13 2:22 AM, Joakim Tjernlund wrote:
> >>> James Li <jli at cumulusnetworks.com> wrote on 2013/03/20 21:48:10:
> >>>> On 3/20/13 1:39 PM, Joakim Tjernlund wrote:
> >>>>>>> should work fine. How might it break (even without the lsa_pos
> >>> changes)?
> >>>>> Identifying the correct ptop I/F using IP address won't fly when 
> >>> have
> >>>>> the
> >>>>> same IP addresses on several ptop links.
> >>>> Interfaces are identified via ifindex for unnumbered, and there is 
> >>>> flag on the ifp data structure to specify it as UNNUMBERED.
> >>> Ah, right. My memory fails me. Your version will work as long as
> >>> both sides uses unnumbered and sets ifindex in Router LSA.
> >>>
> >>> This is what I want to avoid actually:
> >>> Setting ifindex i RLSA is useless to the other routers and it will
> > make
> >>> some routers(inkl. older Quagga) fail to interop.
> >> the ifindex was never meant to be used by other routers. It's meant 
> >> resolving the local egress interface ID from the router LSA links.
> > ifindex was set because from OSPF RFC pov unnumbered ptp's I/F does 
> > have an IP address and you had to put something there so ifindex 
> > it.
> > You don't send out useless info just because you have a local 
> > on it.
> >
> > People later used that to get at their own I/F because they hadn't 
> > out my clever way of doing it :)
> You then need to take the debate to IETF and change the RFC. Until the 
> RFC is changed, we will follow RFC and RFC clearly states:
> "For unnumbered point-to-point links, the Link Data field should be set 
> to the unnumbered interface's MIB-II [Ref8] ifIndex value."

The spec also states that unnumbered I/Fs do not have an IP address.
Following the spec to the letter we will never have unnumbered I/Fs, 

So we can end the unnumbered discussion here by that fact or we
can recognise that the spec has holes, errors and is vaguely written
and go from there, pick one.

> >>> I propose we don't do that to ease interop. Several other vendors
> > already
> >>> do
> >>> this like newer BIRD. There was an discussion on IETF OSPF mail list
> > and
> >>> the
> >>> conclusion was that this does NOT violate the OSPF spec.
> >> If by interop, you mean one side is unnumbered, and the other side is
> >> numbered (like old Quagga), then it's really a configuration error 
> >> will not be supported.
> > Why not? It doesn't cost us anything.
> Because it doesn't make any sense. Please distinguish "interop" with 
> "configuration error", and the key point here is unnumbered interfaces 
> need to be *explicitly* configured.

Why do they need to be configured? Where is that stated or what use case
are you thinking about?

Please note that this is separate from sending ifindex as noted in 1) 

There is nothing in the spec that states the both ptp interfaces need to 
configured the same w.r.t unnumbered vs. numbered. Got that confirmed by 
Acee Lindem too

> An "interop" issue, or backward compatibility issue, is when new Quagga 
> with numbered interfaces does not work with old Quagga with numbered 
> interfaces. And we don't have this issue, they will work happily 
> together with numbered interfaces on both end.
> We have an issue when administrator chooses to *explicitly* configure 
> unnumbered on the new Quagga, but does not (upgrade and) configure 
> unnumbered on the old Quagga. That's a configuration error.

No, it is a bug in old Quagga as it doesn't impl. unnumbered at all.
To workaround that bug you propose we always configure unnumbered
vs. numbered and I propose we just send the IP address always.

> > I think this should be broken down into two issues:
> > 1) Send useless ifindex just to force other routers to upgrade or not.
> >
> > 2) auto detect unnumbered or have a config flag to decide whether to
> >     to insert a Type 3 link (stub network) into the RLSA
> >
> >> James

More information about the Quagga-dev mailing list