[quagga-dev 10019] Re: MPLS, LDP, etc.
timo.teras at iki.fi
Thu Nov 22 14:44:57 GMT 2012
On Thu, 22 Nov 2012 15:16:28 +0100 David Lamparter
<equinox at opensourcerouting.org> wrote:
> On Mon, Nov 19, 2012 at 08:46:46AM +0200, Timo Teras wrote:
> > I noted that there's been some queries on the MPLS support of
> > Quagga. It is also mentioned that MPLS support for Quagga "is going
> > on" .
> > I did find two separate LDP implementations:
> > - the original work of J.Leu 
> > - the OpenBSD LDPd ported to Quagga, by Renato Westphal 
> > It would appear that J.Leu's work is more complete, including BGP
> > changes, and that Renatos tree contains only the OpenBSD LDP ported
> > to Quagga.
> > I will probably be interested to get one of these upstreamed, and a
> > working MPLS+LDP+OSPF(+BGP) stack using Quagga on Linux (so yes, I
> > would be also working with the kernel patch set at ).
> > Is someone else already working on similar?
> Yes and no - there's some work going into keeping LDP up to date;
> other than that things are mostly in a planning stage.
Ok - yes, I figured it was something like this.
> > Which one of the two above LDP implementations would be more likely
> > to get upstreamed?
> For LDP, that would be Renato's version; the history is that Renato
> did start off with James Leu's code but ended up throwing that away
> as it seemed more work to fix that than to redo LDP. It may be
> interesting to look at the old work to get the protocols
Thanks, this is very useful bit of information for me.
> The Linux kernel part is more problematic. Igor Maravić is currently
> maintaining it, but it's nowhere near kernel-mergeable quality. As
> far as I remember, it had been submitted to netdev several times and
> gotten smacked down rather hard. It seems that for now, Free/OpenBSD
Yes, I've been in contact with Igor already during past few months. I
have pretty good idea on the major big issues. However, I have not read
all of the related netdev threads. Will try to find them all.
Igor has also pushed recently updated version fixing at least some of
the problems - but still missing some features and having some major
todo items left.
In short, it is testing ready - but still needs development before being
production or merge ready.
> would be the best choice to get a soft MPLS implementation.
> Relatedly, with OpenFlow integration, the idea is to bypass the
> kernel and have Quagga directly configure labels in the switch.
> NB: I don't know if the Free/OpenBSD MPLS kernel API is actually
> compatible to the Linux one.
Likely not. I believe the linux one is netlink based kernel api, and
the bsd one is likely ioctl based.
> My overview is somewhat limited here, so please contact Renato/Igor. I
> may inadvertedly have told some lies ;)
Will probably contact Renato later when I start working on LDP layer.
> From an OpenSourceRouting point of view I can add that we have several
> parties interested in getting MPLS in, and we hope to start tackling
> it Q2 2013 (e.g. in about 4 months). Our plan was to base off
> Renato's work, (re-)integrate the other daemons, add OpenFlow.
Yes, I noticed there's been lots of enquiries, but nothing major
> If you start working on this now, we'd be very happy to keep in sync
> and see how we can help. We do, in particular, have LDP testsuites
> from commerical test system vendors.
> Also, if you want to coordinate with Renato and submit a LDP branch
> for merging into Quagga, I would be very happy to pick that up, even
> without working kernel backend. Need to start somewhere...
I'm still finishing off some other things. But currently things seem
that MPLS+LDP+OSPF will be my next full time project. I've already done
quite a lot of background reading, RFC reading, reading the current
code available for kernel/quagga etc. I hope to start doing tests,
coding and working on LDP next week.
I'll get in touch with Renato too. If things go well, I'm ok to
start working on the MPLS/LDP branch.
> Hope this helps,
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 490 bytes
Desc: not available
More information about the Quagga-dev