<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>I hope we all understand how edge VPN works and what interactions are introduced as part of this spec. I see references to neutron-network mapping to the tunnel which is not at all case and the edge-VPN spec doesn’t propose it. At a very high level,
there are two main concepts:</div>
<ol>
<li>Creation of a per tenant VPN “service” on a PE (physical router) which has a connectivity to other PEs using some tunnel (not known to tenant or tenant-facing). An attachment circuit for this VPN service is also created which carries a “list" of tenant
networks (the list is initially empty) .</li><li>Tenant “updates” the list of tenant networks in the attachment circuit which essentially allows the VPN “service” to add or remove the network from being part of that VPN.</li></ol>
<div>A service plugin implements what is described in (1) and provides an API which is called by what is described in (2). The Neutron driver only “updates” the attachment circuit using an API (attachment circuit is also part of the service plugin’ data model).
I don’t see where we are introducing large data model changes to Neutron? How else one introduces a network service in OpenStack if it is not through a service plugin? As we can see, tenant needs to communicate (explicit or otherwise) to add/remove its
networks to/from the VPN. There has to be a channel and the APIs to achieve this.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>—Hanif. </div>
<div>
<div id="MAC_OUTLOOK_SIGNATURE"></div>
</div>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:12pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Ian Wells <<a href="mailto:ijw.ubuntu@cack.org.uk">ijw.ubuntu@cack.org.uk</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Monday, December 1, 2014 at 4:35 PM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [Neutron] Edge-VPN and Edge-Id<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">On 1 December 2014 at 09:01, Mathieu Rohon <span dir="ltr"><<a href="mailto:mathieu.rohon@gmail.com" target="_blank">mathieu.rohon@gmail.com</a>></span> wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">This is an alternative that would say : you want an advanced service<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
for your VM, please stretch your l2 network to this external<br>
component, that is driven by an external controller, and make your<br>
traffic goes to this component to take benefit of this advanced<br>
service. This is a valid alternative of course, but distributing the<br>
service directly to each compute node is much more valuable, ASA it is<br>
doable.<br>
</blockquote>
<div><br>
</div>
<div>Right, so a lot rides on the interpretation of 'advanced service' here, and also 'attachment'.<br>
</div>
<div> <br>
</div>
<div>Firstly, the difference between this and the 'advanced services' (including the L3 functionality, though it's not generally considered an 'advanced service') is that advanced services that exist today attach via an addressed port. This bridges in. That's
quite a signifcant difference, which is to an extent why I've avoided lumping the two together and haven't called this an advanced service itself, although it's clearly similar.<br>
<br>
</div>
<div>Secondly, 'attachment' has historically meant a connection to that port. But in DVRs, it can be a multipoint connection to the network - manifested on several hosts - all through the auspices of a single port. In the edge-id proposal you'll note that
I've carefully avoided defining what an attachment is, largely because I have a natural tendency to want to see the interface at the API level before I worry about the backend, I admit. Your point about distributed services is well taken, and I think would
be addressed by one of these distributed attachment types.<br>
<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="">> So the issue I worry about here is that if we start down the path of adding<br>
> the MPLS datamodels to Neutron we have to add Kevin's switch control work.<br>
> And the L2VPN descriptions for GRE, L2TPv3, VxLAN, and EVPN. And whatever<br>
> else comes along. And we get back to 'that's a lot of big changes that<br>
> aren't interesting to 90% of Neutron users' - difficult to get in and a lot<br>
> of overhead to maintain for the majority of Neutron developers who don't<br>
> want or need it.<br>
<br>
</span>This shouldn't be a lot of big changes, once interfaces between<br>
advanced services and neutron core services will be cleaner. </blockquote>
<br>
</div>
<div class="gmail_quote">Well, incorporating a lot of models into Neutron *is*, clearly, quite a bit of change, for starters.<br>
</div>
<div class="gmail_quote"> </div>
<div class="gmail_quote">The edge-id concept says 'the data models live outside neutron in a separate system' and there, yes, absolutely, this proposes a clean model for edge/Neutron separation in the way you're alluding to with advanced services. I think
your primary complaint is that it doesn't define that interface for an OVS driver based system.<br>
<br>
</div>
<div class="gmail_quote">The edge-vpn concept says 'the data models exists within neutron in an integrated fashion' and, if you agree that separation is the way to go, this seems to me to be exactly the wrong approach to be using. It's the way advanced services
are working - for now - but that's because we believe it would be hard to pull them out because the interfaces between service and Neutron don't currently exist. The argument for this seems to be 'we should incorporate it so that we can pull it out at the
same time as advanced services' but it feels like that's making more work now so that we can do even more work in the future.<br>
<br>
For an entirely new thing that is in many respects not like a service I would prefer not to integrate it in the first place, thus skipping over that whole question of how to break it out in the future. It's an open question whether the work to make it play
nicely with the existing ML2 model is worth the effort or not, because I didn't study that. It's not relevant to my needs, but if you're interested then we could talk about what other specs would be required.<br>
</div>
-- <br>
<div class="gmail_quote">Ian.<br>
</div>
</div>
</div>
</div>
</div>
</span>
</body>
</html>