On 5/30/2015 9:45 AM, David Lamparter wrote:
> On Sat, May 30, 2015 at 02:32:36PM +0100, Paul Jakma wrote:
>> On Sat, 30 May 2015, David Lamparter wrote:
>>
>>> Upfront was half a year ago...  and we have users that would like to 
>>> start meshing with this. [http://patchwork.quagga.net/patch/952/]
>> I don't see the VRF design discussion or multi v single daemon discussion 
>> there? Nor does that patch seem to depend on, or need VRF?
>>
>> Exhanging information on BGP-MPLS/L3VPN/$ENCAP_SCHEME_DE_JOUR seems
>> orthogonal to this.
> BGP L3VPN transports connectivity information for various VRFs (VPNs)
> through a common BGP+MPLS backbone, using route distinguishers to tell
> the VRFs apart.
>
> The linked patch doesn't implement any of that, yet, it just adds more
> encodings to the ones we already have.  bgpd had the IPv4 L3VPN support
> even back in the initial import -- it just never could do anything
> useful with it.  It's current usefulness is just route reflectors.
>
> (The patch linked has the advantage of bringing this topic out of the
> MPLS problem space and into areas where kernel-support exists, i.e.
> IPsec & 'plain' tunnels.)
>
> To get to actual use, all of these protocols mandate some level of
> single-process multi-VRF support at least in bgpd.  A "maximum split
> process" approach would need to demultiplex the data from one bgpd onto
> different zebra processses.

We actually have the code to do the per-VRF import/export as well that
we'd like to submit as well.  One of the challenges has been how to
integrate it with a testable forwarding plane. (The code was originally
developed as what is essentially an NVO3 controller with a proprietary
-- now DOA -- NVA to NVE, think openflow-ish, protocol).  Having
multiple VRF-RIB/Zebras supported in a single process will certainly be
easier and perhaps cleaner  integration -- keep in mind the code
submitted *must* run in a single bgpd.  That said, this single bgpd that
does the per-VRF import/export could use an RPC mechanism per zebra process.

I think both single-process multi-VRF and multi-process models have
their places.  The former is more scalable while the latter provides
greater isolation.  I view the latter as being closer to a logical
system/network element than a providing a simple VRF.  And as I think is
generally understood, there is value in being able to support both in
larger systems, and that smaller systems may only support one (or
neither) type. 

For now, I like the idea of integrating with the patch.  Of course, I
may feel differently once I/we really dig into the code.

Lou

>
> -David
>
> _______________________________________________
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to