<div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13px"><font color="#000000">Hi folks,</font></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div>
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">> I was wondering in general how providers can customize service features,</span><br style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">> based on their capabilities (better or worse than reference). I could create</span><br style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">> a Summit session topic on this, but wanted to know if this is something that</span><br style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">> has already been addressed or if a different architectural approach has</span><br style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">
<span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">> already been defined.</span><br><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font face="arial, sans-serif" color="#000000">This is seems to be a multilayered feature that needs to be discussed. </font></div>
<div><font face="arial, sans-serif" color="#000000">Mark McClain will be speaking about vendor cli extensions in </font><a href="http://summit.openstack.org/cfp/details/10">http://summit.openstack.org/cfp/details/10</a><span style="color:rgb(0,0,0);font-family:arial,sans-serif">. </span></div>
<div><font face="arial, sans-serif" color="#000000">It require API counterpart on server side. I was planning to speak about this in this session:</font></div><div><font color="#000000"><a href="http://summit.openstack.org/cfp/details/22">http://summit.openstack.org/cfp/details/22</a> </font></div>
<div><font face="arial, sans-serif" color="#000000">Feel free to add your suggestions to the etherpad.</font></div><div><font face="arial, sans-serif" color="#000000"><br></font></div><div><font color="#000000" face="arial, sans-serif">more specifically:</font></div>
<div><div class="im" style="font-family:arial,sans-serif;font-size:13px">> 7) If a provider as additional attributes (can't think of any yet), how can<br>> the attribute be extended, only for that provider (or is that the wrong way<br>
> to handle this)?<br><font color="#000000">I think it should be an additional extension mechanism different from the framework that we're using right now.</font></div></div><div class="im" style="font-family:arial,sans-serif;font-size:13px">
<font color="#000000">Service plugin should gather extended resources or attribute maps from supported drivers and return them to the layer that will make wsgi controllers for the collections. So it should be pretty much the same as extension framework but instead of loading common extensions, it should load resources from the service plugin.</font></div>
<div class="im" style="font-family:arial,sans-serif;font-size:13px"><br></div><div class="im" style="font-family:arial,sans-serif;font-size:13px"><br></div><div><font face="arial, sans-serif" color="#000000">Thanks,</font></div>
<div><font face="arial, sans-serif" color="#000000">Eugene.</font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Oct 12, 2013 at 1:40 AM, Nachi Ueno <span dir="ltr"><<a href="mailto:nachi@ntti3.com" target="_blank">nachi@ntti3.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Paul<br>
<br>
2013/10/11 Paul Michali <<a href="mailto:pcm@cisco.com">pcm@cisco.com</a>>:<br>
<div class="im">> Hi folks,<br>
><br>
> I have a bunch of questions for you on VPNaaS in specific, and services in<br>
> general...<br>
><br>
> Nachi,<br>
><br>
> 1) You hd a bug fix to do service provider framework support for VPN<br>
> (41827). It was held for Icehouse. Is that pretty much a working patch?<br>
> 2) When are you planning on reopening the review?<br>
<br>
</div>I'm not sure it will work without rebase.<br>
I'll rebase, and test it again in next week.<br>
<div class="im"><br>
><br>
> Anyone,<br>
><br>
> I see that there is an agent.py file for VPN that has a main() and it starts<br>
> up an L3 agent, specifying the VPNAgent class (in same file).<br>
><br>
> 3) How does this file get invoked? IOW how does the main() get invoked?<br>
<br>
</div>we should use neutron-vpn-agent command to run vpn-agent.<br>
This command invoke vpn agent class.<br>
It is defined setup.cnf<br>
<br>
<a href="https://github.com/openstack/neutron/blob/master/setup.cfg#L98" target="_blank">https://github.com/openstack/neutron/blob/master/setup.cfg#L98</a><br>
<div class="im"><br>
> 4) I take it we can specify multiple device drivers in the config file for<br>
> the agent?<br>
<br>
</div>Yes.<br>
<div class="im"><br>
><br>
> Currently, for the reference device driver, the hierarchy is currently<br>
> DeviceDriver [ABC] -> IPsecDriver [Swan based logic] -> OpenSwanDriver [one<br>
> function, OpenSwan specific]. The ABC has a specific set of APIs. Wondering<br>
> how to incorporate provider based device drivers.<br>
<br>
</div>It is designed when we know only one swan based driver.<br>
so It won't fit with another device drivers.<br>
if so, You can also extend or modify DeviceDriver also.<br>
<div class="im"><br>
> 5) Should I push up more general methods from IPsecDriver to DeviceDriver,<br>
> so that they can be reused by other providers?<br>
<br>
</div>That's woud be great<br>
<div class="im"><br>
> 6) Should I push down the swan based methods from DeviceDriver to<br>
> IPsecDriver and maybe name it SwanDeviceDriver?<br>
<br>
</div>yes<br>
<div class="im"><br>
><br>
> I see that vpnaas.py is an extension for VPN that defines attributes and the<br>
> base plugin functions.<br>
><br>
> 7) If a provider as additional attributes (can't think of any yet), how can<br>
> the attribute be extended, only for that provider (or is that the wrong way<br>
> to handle this)?<br>
<br>
</div>You can extend existing extension.<br>
<div class="im"><br>
> For VPN, there are several attributes, each with varying ranges of values<br>
> allowed. This is reflected in the CLI help messages, the database (e.g.<br>
> enums), and is validated (some) in the client code and in the VPN service.<br>
<br>
</div>Chaining existing attributes may be challenging on client side.<br>
But let's discuss this with a concrete example.<br>
<div class="im"><br>
> 8) How do we provide different limits/allowed values for attributes, for a<br>
> specific provider (e.g. let's say the provider supports or doesn't support<br>
> an encryption method, or doesn't support IKE v1 or v2)?<br>
<br>
</div>Driver can throw unsupported exception. ( It is not defined yet)<br>
<div class="im"><br>
> 9) Should the code be changed not to do any client validation, and to have<br>
> generic help, so that different values could be provided, or is there a way<br>
> to customize this based on provider?<br>
<br>
</div>That's could be one way.<br>
<div class="im"><br>
> 10) If customized, is it possible to reflect the difference in allowed<br>
> values in the help strings (and client validation)?<br>
<br>
</div>May be, server side can tell the client "hey I'm supporting this set of values"<br>
Then client can use it as the help string.<br>
# This change may need bp.<br>
<div class="im"><br>
> 11) How do we handle the variation in the database (e.g. when enums<br>
> specifying a fixed set of values)? Do we need to change the database to be<br>
> more generic (strings and ints) or do we somehow extend the database?<br>
<br>
</div>more than one driver will use same DB.<br>
so I'm +1 for generic db structure if it is really needed.<br>
<div class="im"><br>
> I was wondering in general how providers can customize service features,<br>
> based on their capabilities (better or worse than reference). I could create<br>
> a Summit session topic on this, but wanted to know if this is something that<br>
> has already been addressed or if a different architectural approach has<br>
> already been defined.<br>
<br>
</div>AFIK, That's new challenge.<br>
I think LB team and FW team is facing same issue.<br>
<br>
Best<br>
Nachi<br>
<div class="im"><br>
><br>
> Regards,<br>
><br>
><br>
> PCM (Paul Michali)<br>
><br>
> MAIL <a href="mailto:pcm@cisco.com">pcm@cisco.com</a><br>
> IRC   pcm_  (<a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a>)<br>
> TW   @pmichali<br>
><br>
<br>
</div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div>