<div dir="ltr">Hi again.<div><br></div><div>You were right, I was committing 2 mistakes. One, was not adding q-vpn service to my localrc (newbie error) and two, I had some python errors. Everything is solved, now my devstack boots using my plugin (service driver and device driver)!!! I'm experiencing some problems, but now they are related with code. Anyway, these errors are good news, because now I need to develop my plugin, m first original goal.</div>

<div><br></div><div>Taking as reference Cisco IPsec plugin, I see this code in device driver file, line 547 (<a href="https://github.com/openstack/neutron/blob/master/neutron/services/vpn/device_drivers/ipsec.py#L547">https://github.com/openstack/neutron/blob/master/neutron/services/vpn/device_drivers/ipsec.py#L547</a>):</div>

<div><br></div><div><pre style="margin-top:0px;margin-bottom:0px"><div class="" id="LC547" style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;padding-left:10px;height:18px;background-color:rgb(255,255,204)">

    <span class="">@abc.abstractmethod</span></div><div class="" id="LC548" style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;padding-left:10px;height:18px">

    <span class="" style="font-weight:bold">def</span> <span class="" style="color:rgb(153,0,0);font-weight:bold">create_process</span><span class="">(</span><span class="" style="color:rgb(153,153,153)">self</span><span class="">,</span> <span class="">process_id</span><span class="">,</span> <span class="">vpnservice</span><span class="">,</span> <span class="">namespace</span><span class="">):</span></div>

<div class="" id="LC549" style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;padding-left:10px;height:18px">        <span class="" style="font-weight:bold">pass</span></div>

<div class="" id="LC549" style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;padding-left:10px;height:18px"><span class="" style="font-weight:bold"><br>

</span></div><font face="arial, helvetica, sans-serif">It is simply an abstract method, and obviously, it is not possible to instantiate a class with abstract methods. So I got this error when I tried to reboot q-vpn service:</font></pre>

<pre style="margin-top:0px;margin-bottom:0px"><br></pre></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><pre style="margin-top:0px;margin-bottom:0px">CRITICAL neutron [req-ead47120-c5c0-4db2-b2b3-3ae58b047e63 None None] Can't instantiate abstract class VPNaaSDriver with abstract methods create_process</pre>

</div></blockquote><div><pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif"><br></font></pre><pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif">It is difficult to me developing a VPN plugin, specially the connection between service driver and device driver. How can Cisco IPsec plugin work with this code? Do I need to extend neutron.services.vpn.device_drivers.DeviceDriver class as they do?</font></pre>

<pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif"><br></font></pre><pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif">Once again, thank you very much Paul.</font></pre>

<pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif"><br></font></pre><pre style="margin-top:0px;margin-bottom:0px"><font face="arial, helvetica, sans-serif">Regards,</font></pre><font face="arial, helvetica, sans-serif"><span style="white-space:pre"> <br>

</span></font></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>

</font></font></div><font size="1"><font style="font-family:Helvetica">Julio C. Barrera Juez</font></font><div><font size="1"><font style="font-family:Helvetica">Office phone: +34 93 357 99 27<br>Distributed Applications and Networks Area (DANA)<br>

i2CAT Foundation, Barcelona, Spain</font><br><a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div></div></div>
<br><br><div class="gmail_quote">On 22 May 2014 18:15, Paul Michali (pcm) <span dir="ltr"><<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><br><div><div class=""><div>On May 22, 2014, at 10:06 AM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div>

<br><blockquote type="cite"><div dir="ltr">OK, I modified my neutron.conf file adding your <span style="font-family:arial,sans-serif;font-size:13px">service_plugins line (and commenting the old ones). I unstacked clear, stacked again, applied both files and restarted q-svc and q-l3, but VPN plugin seems to be not applied at all.</span></div>

</blockquote><div><br></div></div>By “applied both files” do you mean you modified the /etc/neutron/neutron.conf and /etc/neutron/vpn_agent.ini files after stacking?</div><div><br></div><div><div class=""><br><blockquote type="cite">

<div dir="ltr"><div>

<span style="font-family:arial,sans-serif;font-size:13px">These lines continue appearing in q-svc log file:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font face="arial, sans-serif">2014-05-22 06:53:08.523 DEBUG neutron.service [-] service_plugins                = ['neutron.services.l3_router.l3_router_plugin.L3RouterPlugin'] from (pid=15626) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1952</font><br>



</div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">May I restart other services?</font></div></div></blockquote><div><br></div></div><div><div><div>What I do is:</div><div><br>

</div><div>1) Make sure that localrc has q-vpn service enabled  (<b>my guess is that you are missing this!)</b></div><div>2) Ensure that /opt/stack/neutron/etc/vpn_agent.ini has my device driver line included</div><div>3) Apply the following patch to devstack, so that my service driver is automatically selected (you can replace with yours) when DevStack starts things up:</div>

<div><div class="h5"><div><br></div><div><pre style="padding:1em;border:1px dashed rgb(47,111,171);line-height:1.1em;background-color:rgb(249,249,249)">patch -p 1 << EOT
diff --git a/lib/neutron b/lib/neutron
index 02dcaf6..452281b 100644
--- a/lib/neutron
+++ b/lib/neutron
@@ -728,6 +728,7 @@ function _configure_neutron_fwaas {
 function _configure_neutron_vpn {
     neutron_vpn_install_agent_packages
     neutron_vpn_configure_common
+    neutron_vpnaas_configure_driver
 }

 # _configure_neutron_plugin_agent() - Set config files for neutron plugin agent
diff --git a/lib/neutron_plugins/services/vpn b/lib/neutron_plugins/services/vpn
index d920ba6..a676fdc 100644
--- a/lib/neutron_plugins/services/vpn
+++ b/lib/neutron_plugins/services/vpn
@@ -18,6 +18,10 @@ function neutron_vpn_configure_common {
     _neutron_service_plugin_class_add $VPN_PLUGIN
 }

+function neutron_vpnaas_configure_driver() {
+    iniset_multiline $NEUTRON_CONF service_providers service_provider "VPN:cisco:neutron.services.vpn.service_drivers.cisco_ipsec.CiscoCsrIPsecVPNDriver:default"
+}
+
 function neutron_vpn_stop {
     local ipsec_data_dir=$DATA_DIR/neutron/ipsec
     local pids
EOT</pre><div><br></div></div></div></div><div>4) Run stack.sh</div><div>5) Check screen-q-svc.log to ensure service_plugins has VPN plugin and it is loaded, service_providers has my service provider and it is loaded.</div>

<div>6) Check screen-q-vpn.log to ensure that my device driver is there.</div><div><div class="h5"><div><br></div><div>HTHs,</div><div><br></div><div>PCM (Paul Michali)</div><div><br></div><div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div>

<div>IRC ……..… pcm_ (<a href="http://irc.freenode.com" target="_blank">irc.freenode.com</a>)</div><div>TW ………... @pmichali</div><div>GPG Key … 4525ECC253E31A83</div><div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div>

</div></div></div><div><br></div><br></div><div><div class="h5"><blockquote type="cite"><div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div></div>

<div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br></font></font></div>



<font size="1">Julio C. Barrera Juez</font><div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">+34 93 357 99 27</a><br>Distributed Applications and Networks Area (DANA)<br>



i2CAT Foundation, Barcelona, Spain</font><br><a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div></div></div>
<br><br><div class="gmail_quote">On 22 May 2014 13:15, Paul Michali (pcm) <span dir="ltr"><<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word">One difference I see in log is that with my setup, I see:<div><br></div><div><div>2014-05-22 10:53:13.107 20564 DEBUG routes.middleware [-] Matched GET /vpn/vpnservices.json __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:100</div>



<div>2014-05-22 10:53:13.108 20564 DEBUG routes.middleware [-] Route path: '/vpn/vpnservices.:(format)', defaults: {'action': u'index', 'controller': <wsgify at 58423632 wrapping <function resource at 0x37b8050>>} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:102</div>



<div>2014-05-22 10:53:13.108 20564 DEBUG routes.middleware [-] Match dict: {'action': u'index', 'controller': <wsgify at 58423632 wrapping <function resource at 0x37b8050>>, 'format': u'json'} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:103</div>



<div>2014-05-22 10:53:13.113 20564 INFO neutron.wsgi [req-81180687-3173-4960-b33d-9031c5e57f74 None] 14.0.3.33 - - [22/May/2014 10:53:13] "GET /v2.0/vpn/vpnservices.json HTTP/1.1" 200 208 0.020912</div><div><br>



</div><div>Whereas, in your log I see:</div><div><br></div><div><pre style="word-wrap:break-word;white-space:pre-wrap"><font face="Helvetica">2014-05-22 03:26:33.427  [00;32mDEBUG routes.middleware [ [00;36m- [00;32m]  [01;35m [00;32m<b>No route matched</b> for GET /vpn/vpnservices.json [00m  [00;33mfrom (pid=37367) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97 [00m
2014-05-22 03:26:33.436  [00;32mDEBUG routes.middleware [ [00;36m- [00;32m]  [01;35m [00;32m<b>No route matched</b> for GET /vpn/vpnservices.json [00m  [00;33mfrom (pid=37367) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97 [00m
2014-05-22 03:26:33.444  [00;36mINFO neutron.wsgi [ [01;36mreq-d9a6b5c3-4165-4c9f-83c0-1e87f3d43749  [00;36madmin 4e7b8bf6fcfd47028fd63b0bd2f943b3 [00;36m]  [01;35m [00;36m127.0.0.1 - - [22/May/2014 03:26:33] "GET /v2.0/vpn/vpnservices.json HTTP/1.1" 404 242 0.235507
 [00m
</font></pre></div><div>It looks like you don’t have the VPN plugin enabled. In neutron.conf, you should have:</div><div><br></div><div>service_plugins = neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,<b>neutron.services.vpn.plugin.VPNDriverPlugin</b></div>



<div><div>service_provider = <b>VPN:junos_vpnaas:neutron.services.vpn.junos_vpnaas.service_drivers.vpnaas_service_driver.VPNaaSServiceDriver:default</b></div><div><br></div></div><div>The log provided does not show the VPN plugin...</div>



<div><span style="white-space:pre-wrap"><br></span></div><pre style="word-wrap:break-word;white-space:pre-wrap">2014-05-22 03:22:56.071  [00;32mDEBUG neutron.service [ [00;36m- [00;32m]  [01;35m [00;32mservice_plugins                = ['<b><font color="#e32400">neutron.services.l3_router.l3_router_plugin.L3RouterPlugin</font></b>'] [00m  [00;33mfrom (pid=37367) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1952 [00m
</pre><div><pre style="word-wrap:break-word;white-space:pre-wrap">2014-05-22 03:22:56.076  [00;32mDEBUG neutron.service [ [00;36m- [00;32m]  [01;35m [00;32mservice_providers.service_provider = ['<b>VPN:junos_vpnaas:neutron.services.vpn.junos_vpnaas.service_drivers.vpnaas_service_driver.VPNaaSServiceDriver:default</b>'] [00m  [00;33mfrom (pid=37367) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1960 [00m</pre>



<div><br></div></div><div>So the requests are never getting to the core VPN plugin code (let along getting to your service driver).</div><div><div><br></div><div><br></div><div>Regards,</div><div><br></div><div>
<br>
</div><div>
<div><div>PCM (Paul Michali)</div><div><br></div><div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div><div>IRC ……..… pcm_ (<a href="http://irc.freenode.com/" target="_blank">irc.freenode.com</a>)</div>



<div>TW ………... @pmichali</div><div>GPG Key … 4525ECC253E31A83</div><div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div></div><div><br></div><br>
</div>
<br></div><div><div><div><div>On May 22, 2014, at 6:31 AM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div><br><blockquote type="cite">



<div dir="ltr">Thank you for your dedication Paul.<div><br></div><div>I forgot to edit these file, you were right. I modified it and now I see in the log:</div><div><br></div><div>2014-05-22 03:22:56.076  [00;32mDEBUG neutron.service [ [00;36m- [00;32m]  [01;35m [00;32mservice_providers.service_provider = ['VPN:junos_vpnaas:neutron.services.vpn.junos_vpnaas.service_drivers.vpnaas_service_driver.VPNaaSServiceDriver:default'] [00m  [00;33mfrom (pid=37367) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1960 [00m<br>






</div><div><br></div><div>This is just my configuration, it seems correct. but I continue getting this:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>neutron vpn-service-list</div>






</div><div>404 Not Found</div><div><br></div><div>The resource could not be found.</div><div><br></div></blockquote><div><div>This is my log file: <a href="http://pastebin.com/raw.php?i=6SZ2Xatg" target="_blank">http://pastebin.com/raw.php?i=6SZ2Xatg</a></div>





</div><div><br></div><div>I don't know how to proceed, this is being a nightmare to me...</div><div><br></div><div>Regards,</div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>





</font></font></div><font size="1">Julio C. Barrera Juez</font><div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">+34 93 357 99 27</a><br>



Distributed Applications and Networks Area (DANA)<br>

i2CAT Foundation, Barcelona, Spain</font><br><a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div></div></div>
<br><br><div class="gmail_quote">On 21 May 2014 18:19, Paul Michali (pcm) <span dir="ltr"><<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div style="word-wrap:break-word">You have to have your service driver specified (as default) in neutron.conf, and your device_driver specified in vpn_agent.ini. For the former, you can either modify it after the devstack run and then restart the server, or you can tweak the devstack scripts to modify neutron.conf and add in the service driver. For the device driver, you can modify it in /opt/stack/neutron/etc/vpn_agent.ini and it’ll get copied to /etc/neutron/ with the change.<div>





<br></div><div>The log below only shows the reference service driver:</div><div><br></div><div><pre style="word-wrap:break-word;white-space:pre-wrap">2014-05-21 08:28:46.703  [00;32mDEBUG neutron.service [ [00;36m- [00;32m]  [01;35m [00;32mservice_providers.service_provider = ['LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default', '<b>VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default</b>'] [00m  [00;33mfrom (pid=2199) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1960 [00m
</pre><div><br></div><div><div><div>
<div><div>PCM (Paul Michali)</div><div><br></div><div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div><div>IRC ……..… pcm_ (<a href="http://irc.freenode.com/" target="_blank">irc.freenode.com</a>)</div>





<div>TW ………... @pmichali</div><div>GPG Key … 4525ECC253E31A83</div><div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div></div><div><br></div><br>
</div>
<br></div><div><div><div>On May 21, 2014, at 11:43 AM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div><br><blockquote type="cite">





<div dir="ltr">First of all, excuse me for the silent days. I have made some changes in my devstack instance. I took current master branch of devstack repository and applied your patch to it with my plugin files defined (see it in GitHub <a href="https://github.com/logoff/devstack/tree/junos-vpnaas" target="_blank">https://github.com/logoff/devstack/tree/junos-vpnaas</a>). I used a localrc file like this: <a href="http://pastebin.com/dE5bYkTE" target="_blank">http://pastebin.com/dE5bYkTE</a> and when I execute this command, it works:<div>







<br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>neutron subnet-list</div><div><div>+--------------------------------------+----------------+---------------+------------------------------------------------+</div>







</div><div>| id                                   | name           | cidr          | allocation_pools                               |</div><div><div>+--------------------------------------+----------------+---------------+------------------------------------------------+</div>







</div><div>| 7f8e23ef-be53-423e-8fb9-ea6b4f2b5d6b | private-subnet | <a href="http://10.254.1.0/24" target="_blank">10.254.1.0/24</a> | {"start": "10.254.1.2", "end": "10.254.1.254"} |</div>







<div>| f3b85fcc-1c01-4ac8-9950-1f45157c6887 | public-subnet  | <a href="http://172.24.4.0/24" target="_blank">172.24.4.0/24</a> | {"start": "172.24.4.2", "end": "172.24.4.254"} |</div>





<div>

<div>+--------------------------------------+----------------+---------------+------------------------------------------------+</div></div></blockquote><div><div><br></div><div>but when I execute this command, it fails:</div>







</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>neutron vpn-service-list</div><div>404 Not Found</div><div><br></div><div><div>The resource could not be found.</div>

</div></blockquote><div><div><br></div><div>   </div></div><div>Here you can find my q-svc log file (it is big, only 10 minutes of execution: <a href="http://pastebin.com/raw.php?i=hqBzg8ED" target="_blank">http://pastebin.com/raw.php?i=hqBzg8ED</a></div>







<div>I can not see my plugin anywhere. What do I need to do to achieve adding my single provider VPNaaS plugin to a devstack instance?</div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>







</font></font></div><font size="1">Julio C. Barrera Juez</font><div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">+34 93 357 99 27</a><br>





Distributed Applications and Networks Area (DANA)<br>

i2CAT Foundation, Barcelona, Spain</font><br><a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div></div></div>
<br><br><div class="gmail_quote">On 9 May 2014 14:33, Paul Michali (pcm) <span dir="ltr"><<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">











<div style="word-wrap:break-word">
Not really sure from the log snippet. Can you make available the full log (not sure where you can post it)?
<div><br>
</div>
<div>The q-svc log should indicate that your service driver was found and loaded.</div>
<div><br>
</div>
<div><div><br>
<div>
<div>
<div>PCM (Paul Michali)</div>
<div><br>
</div>
<div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div>
<div>IRC ……..… pcm_ (<a href="http://irc.freenode.com/" target="_blank">irc.freenode.com</a>)</div>
<div>TW ………... @pmichali</div>
<div>GPG Key … 4525ECC253E31A83</div>
<div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div>
</div>
<div><br>
</div>
<br>
</div>
<br>
</div><div><div>
<div>On May 6, 2014, at 3:13 PM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div>
<br>
<blockquote type="cite">
<div dir="ltr">Hi!
<div><br>
</div>
<div>First of all thnak you for your guidance.</div>
<div><br>
</div>
<div>I have followed your instructions with Cisco CSR VPN plugin and my not finished plugin. I got same results on both cases</div>
<div>I invoked this command on CLI:</div>
<div><br>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">neutron vpn-service-list</blockquote>
<div><br>
</div>
<div>and the result was:</div>
<div><br>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div>404 Not Found</div>
<div><br>
</div>
<div>The resource could not be found.</div>
</blockquote>
<div><br>
</div>
<div>Looking in the log of q-svc I see:</div>
<div><br>
</div>
<div><br>
</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>
<div>02014-05-06 12:05:04.119 INFO neutron.wsgi [req-8e9b50d1-4f6a-4f32-aa3d-db792ba744d5 admin 1798cd11ee304907aa463e6fea7a09bb] (3743) accepted ('10.0.1.10', 52672)</div>
</div>
<div><br>
</div>
<div>
<div>2014-05-06 12:05:04.119 DEBUG keystoneclient.middleware.auth_token [-] Authenticating user token from (pid=3743) __call__ /opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py:603</div>
</div>
<div>
<div>2014-05-06 12:05:04.120 DEBUG keystoneclient.middleware.auth_token [-] Removing headers from request environment: X-Identity-Status,X-Domain-Id,X-Domain-Name,X-Project-Id,X-Project-Name,X-Project-Domain-Id,X-Project-Domain-Name,X-User-Id,X-User-Name,X-User-Domain-Id,X-User-Domain-Name,X-Roles,X-Service-Catalog,X-User,X-Tenant-Id,X-Tenant-Name,X-Tenant,X-Role
 from (pid=3743) _remove_auth_headers /opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py:662</div>
</div>
<div>
<div>2014-05-06 12:05:04.138 DEBUG keystoneclient.middleware.auth_token [-] Storing token in cache from (pid=3743) _cache_put /opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py:1121</div>
</div>
<div>
<div>2014-05-06 12:05:04.139 DEBUG keystoneclient.middleware.auth_token [-] Received request from user: cbf59516f8c64a10966b0df843a58608 with project_id : 1798cd11ee304907aa463e6fea7a09bb and roles: admin  from (pid=3743) _build_user_headers /opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py:910</div>








</div>
<div>2014-05-06 12:05:04.140 DEBUG routes.middleware [-] No route matched for GET /vpn/vpnservices.json from (pid=3743) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97</div>
<div>
<div>2014-05-06 12:05:04.140 DEBUG routes.middleware [-] No route matched for GET /vpn/vpnservices.json from (pid=3743) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97</div>
</div>
<div>
<div>2014-05-06 12:05:04.148 INFO neutron.wsgi [req-481d6f8b-c0f4-4862-965f-a0468c37a582 admin 1798cd11ee304907aa463e6fea7a09bb] 10.0.1.10 - - [06/May/2014 12:05:04] "GET /v2.0/vpn/vpnservices.json HTTP/1.1" 404 176 0.028534</div>








</div>
<div><br>
</div>
</blockquote>
I don't know why the service was "Not found".
<div><br>
</div>
<div>May you give me some help to solve this problem?</div>
<div><br>
</div>
<div>Thank you.<br>
<div><br>
</div>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">
<div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>
</font></font></div>
<font size="1">Julio C. Barrera Juez</font>
<div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</font><br>
<a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div>
</div>
</div>
<br>
<br>
<div class="gmail_quote">On 28 April 2014 14:10, Paul Michali (pcm) <span dir="ltr">
<<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><br>
<div>
<div>
<div>On Apr 26, 2014, at 7:39 AM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div>
<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>I'm trying to configure any VPNaaS plugin in single-provider mode. I'm not able to achieve this goal. I'm using a devstack installation and I'm editing
<i>/etc/neutron/neutron.conf</i> file, modifying this line:
<div><br>
</div>
<div>...</div>
<div>service_provider=VPN:cisco_csr:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default<br>
</div>
<div>...</div>
<div><br>
</div>
<div>and <i>/etc/neutron/vpn_agent.ini</i> modifyin gthis line:</div>
<div><br>
</div>
<div><i>...</i></div>
</div>
<div><i>vpn_device_driver=neutron.services.vpn.device_drivers.ipsec.IPsecDriver…</i></div>
</div>
</blockquote>
<div><br>
</div>
PCM: So what are you modifying these lines to? Are they pointing to valid modules?</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>I'm not sure if this configuration is OK. I have some doubts:</div>
<div><br>
</div>
<div>- Is this configuration a valid one taking into account that plugin are available in Python modules path?</div>
</div>
</blockquote>
<div><br>
</div>
</div>
PCM: Sorry, I don’t understand what you’re asking here.</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type="cite">
<div dir="ltr">
<div>- Where are the log files located to check valid neutron configuration?</div>
</div>
</blockquote>
<div><br>
</div>
</div>
PCM: There is a variable in DevStacks localrc to set where the logs are placed. For example:</div>
<div><br>
</div>
<div>SCREEN_LOGDIR=/opt/stack/screen-logs</div>
<div><br>
</div>
<div>I don’t know what the default is (disabled?).</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type="cite">
<div dir="ltr">
<div>- What services should I restart each time I change this configuration?</div>
</div>
</blockquote>
<div><br>
</div>
</div>
PCM: q-svc for the service_driver, and q-vpn for the device_driver (and maybe q-aft?).</div>
<div><br>
</div>
<div><br>
</div>
<div>What I do, is modify vpn_agent.ini in /opt/stack/neutron/etc/ and then, using a newer DevStack that has my commit for VPN (<a href="https://review.openstack.org/#/c/86567/" target="_blank">https://review.openstack.org/#/c/86567/</a>), /etc/neutron/vpn_agent.ini
 will be set with the desired device driver and that will be loaded at start up.</div>
<div><br>
</div>
<div>Also, I do a patch to DevStack’s lib/neutron and lib/neutron_plugins/services/vpn to setup neutron.conf as well, so that, again, /etc/neutron/neutron.conf is set up and stack.sh will do the right thing. The patch is:</div>








<div><br>
</div>
<div>
<div>patch -p 1 << EOT</div>
<div>diff --git a/lib/neutron b/lib/neutron</div>
<div>index 02dcaf6..452281b 100644</div>
<div>--- a/lib/neutron</div>
<div>+++ b/lib/neutron</div>
<div>@@ -728,6 +728,7 @@ function _configure_neutron_fwaas {</div>
<div> function _configure_neutron_vpn {</div>
<div>     neutron_vpn_install_agent_packages</div>
<div>     neutron_vpn_configure_common</div>
<div>+    neutron_vpnaas_configure_driver</div>
<div> }</div>
<div><br>
</div>
<div> # _configure_neutron_plugin_agent() - Set config files for neutron plugin agent</div>
<div>diff --git a/lib/neutron_plugins/services/vpn b/lib/neutron_plugins/services/vpn</div>
<div>index d920ba6..a676fdc 100644</div>
<div>--- a/lib/neutron_plugins/services/vpn</div>
<div>+++ b/lib/neutron_plugins/services/vpn</div>
<div>@@ -18,6 +18,10 @@ function neutron_vpn_configure_common {</div>
<div>     _neutron_service_plugin_class_add $VPN_PLUGIN</div>
<div> }</div>
<div><br>
</div>
<div>+function neutron_vpnaas_configure_driver() {</div>
<div>+    iniset_multiline $NEUTRON_CONF service_providers service_provider "VPN:cisco:neutron.services.vpn.service_drivers.cisco_ipsec.CiscoCsrIPsecVPNDriver:default"</div>
<div>+}</div>
<div>+</div>
<div> function neutron_vpn_stop {</div>
<div>     local ipsec_data_dir=$DATA_DIR/neutron/ipsec</div>
<div>     local pids</div>
<div>EOT</div>
<div>
<div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>
<div>
<div>PCM (Paul Michali)</div>
<div><br>
</div>
<div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div>
<div>IRC ……..… pcm_ (<a href="http://irc.freenode.com/" target="_blank">irc.freenode.com</a>)</div>
<div>TW ………... @pmichali</div>
<div>GPG Key … 4525ECC253E31A83</div>
<div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div>
</div>
<div><br>
</div>
<br>
</div>
</div>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thank you very much.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">
<div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>
</font></font></div>
<font size="1">Julio C. Barrera Juez</font>
<div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">
+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</font><br>
<a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div>
</div>
</div>
<br>
<br>
<div class="gmail_quote">On 24 April 2014 16:14, Paul Michali (pcm) <span dir="ltr">
<<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Not sure I quite understand the question, but to configuring VPNaaS in single provider mode, from a user’s perspective is the same (see
<a href="http://api.openstack.org/" target="_blank">api.openstack.org</a>).
<div><br>
</div>
<div>To bring up a cloud that uses a different vendor’s service and device driver, you need to modify neutron.conf to select the vendor’s service driver (as the default driver), instead of the reference driver, and in vpn_agent.ini you select the vendor’s device
 driver (instead of or in addition to the reference implementation, doesn’t matter, as it pairs with the service driver).</div>
<div><br>
</div>
<div>HTHs,</div>
<div><br>
</div>
<div>
<div><br>
<div>
<div>
<div>PCM (Paul Michali)</div>
<div><br>
</div>
<div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div>
<div>IRC ……..… pcm_ (<a href="http://irc.freenode.com/" target="_blank">irc.freenode.com</a>)</div>
<div>TW ………... @pmichali</div>
<div>GPG Key … 4525ECC253E31A83</div>
<div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div>
</div>
<div><br>
</div>
<br>
</div>
<br>
</div>
<div>
<div>
<div>
<div>On Apr 24, 2014, at 3:13 AM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div>
<br>
<blockquote type="cite">
<div dir="ltr">OK, thank you guys, I understood that it was not possible to configure and make work any VPNaaS plugin. I don't care, by now, because it works in single-provider mode. I knew about the Cisco implementation, but I don't know how to configure it,
 because I didn't find enough documentation about that topic. I need some help on the basics configuring a VPNaaS plugin in single provider mode, because I only found information about it in 3rd party blog posts, etc.
<div><br>
</div>
<div>What are the basic steps?</div>
<div><br>
</div>
<div>Thank you again.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">
<div><img src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png" width="200" height="53"><font size="1"><font style="font-family:Helvetica"><br>
</font></font></div>
<font size="1">Julio C. Barrera Juez</font>
<div><font size="1"><font style="font-family:Helvetica">Office phone: <a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">
+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</font><br>
<a href="http://dana.i2cat.net/" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></font></div>
</div>
</div>
<br>
<br>
<div class="gmail_quote">On 18 April 2014 10:50, Bo Lin <span dir="ltr"><<a href="mailto:linb@vmware.com" target="_blank">linb@vmware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="font-size:12pt;font-family:times new roman,new york,times,serif">
<div>Hi Julio,</div>
<div>+1 for Paul's response. Multiple-provider VPNaaS support is delayed. But you can take <a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/74156/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=3436530b865ab50e305340302d741b5f023419bebc45ec144caa57e4c51b0452" target="_blank">https://review.openstack.org/#/c/74156/</a> and <a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/74144/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=08ac89d9f0424a7f6bb462accc106a9edc6df8e41b6b7fe568ea287db47abe30" target="_blank">https://review.openstack.org/#/c/74144/</a> as
 examples to write your own vpnaas driver without multi-provider support. If any questions or problems in your codes leading to not work, just upload your codes onto the review board, we can find how to solve it :).</div>








<div><br>
</div>
<div>Thanks!</div>
<div>---Bo</div>
<div><br>
</div>
<div><br>
</div>
<hr>
<div style="font-size:12pt;font-style:normal;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal">
<b>From: </b>"Paul Michali (pcm)" <<a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a>>
<div><br>
<b>To: </b>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
</div>
<b>Sent: </b>Friday, April 11, 2014 2:15:18 AM
<div>
<div><br>
<b>Subject: </b>Re: [openstack-dev] How to implement and configure a new Neutron vpnaas driver from scratch?<br>
<div><br>
</div>
By not “working” do you mean you cannot get the plugin to work in a multi-provider environment? Multi-provider solutions have been tabled until Juno, where more discussion is occurring on what is the best way to support different service providers.
<div>
<div><br>
</div>
<div>However, you should be able to get the plugin to work as the “sole” VPN service provider, which is what the Cisco solution does currently. You can look at how I’ve done that in the cisco_ipsec.py modules in the service_drivers and device_drivers directories,
 under neutron/services/vpn/.</div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div>
<div>
<div>
<div>PCM (Paul Michali)</div>
<div><br>
</div>
<div>MAIL …..…. <a href="mailto:pcm@cisco.com" target="_blank">pcm@cisco.com</a></div>
<div>IRC ……..… pcm_ (<a href="https://urldefense.proofpoint.com/v1/url?u=http://irc.freenode.com&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=3f732defa72f3a816af1d5b52eefd459e2939807789cbc29c963da082ce8c010" target="_blank">irc.freenode.com</a>)</div>








<div>TW ………... @pmichali</div>
<div>GPG Key … 4525ECC253E31A83</div>
<div>Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83</div>
</div>
<div><br>
</div>
<br>
</div>
<br>
<div>
<div>On Apr 10, 2014, at 1:51 PM, Julio Carlos Barrera Juez <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>> wrote:</div>
<br>
<blockquote>
<div dir="ltr">
<div>Hi.</div>
<div><br>
</div>
After 8 months of the patch creation and being abandoned weeks ago (<a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/41827/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=35c7a80127726543da2ed25bdde79e07b28ce936aa8a1ca7afa4fc20bcbefb65" target="_blank">https://review.openstack.org/#/c/41827/</a>)
 I still don't how can we develop a VPNaaS plugin following Bo Lin instructions. Is there any other patch trying to solve the problem? Is there any way to workaround the issue to get a VPNaaS plugin working?
<div><br>
</div>
<div>Thank you!</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">
<div><img width="200" height="53" src="http://www.i2cat.net/sites/all/themes/elegantica/logo.png"><span size="1" style="font-size:xx-small"><span style="font-family:Helvetica"><br>
</span></span></div>
<span size="1" style="font-size:xx-small">Julio C. Barrera Juez</span>
<div><span size="1" style="font-size:xx-small"><span style="font-family:Helvetica">Office phone:
<a href="tel:%2B34%2093%20357%2099%2027" value="+34933579927" target="_blank">+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</span><br>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://dana.i2cat.net/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=86728c6db62dee1a59132a2b11c5651432e714ee782ead0c4790189d29195b5d" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></span></div>








</div>
</div>
<br>
<br>
<div class="gmail_quote">On 27 February 2014 10:51, Bo Lin <span dir="ltr"><<a href="mailto:linb@vmware.com" target="_blank">linb@vmware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="font-size:12pt;font-family:times new roman,new york,times,serif">
<div>Hi Julio,<br>
</div>
<div>You can take <a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/74156/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=3436530b865ab50e305340302d741b5f023419bebc45ec144caa57e4c51b0452" target="_blank">https://review.openstack.org/#/c/74156/</a> and <a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/74144/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=08ac89d9f0424a7f6bb462accc106a9edc6df8e41b6b7fe568ea287db47abe30" target="_blank">https://review.openstack.org/#/c/74144/</a> as
 examples to write your own vpnaas driver. More info about service type framework, you can also refer to neutron/services/loadbalancer codes.</div>
<div><br>
</div>
<hr>
<div style="font-size:12pt;font-style:normal;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal">
<div><b>From: </b>"Julio Carlos Barrera Juez" <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>><br>
</div>
<b>To: </b>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Sent: </b>Thursday, February 27, 2014 5:26:32 PM<br>
<b>Subject: </b>Re: [openstack-dev] How to implement and configure a new Neutron vpnaas driver from scratch?
<div>
<div><br>
<div><br>
</div>
<div dir="ltr">I'm following the change you pointed a week ago. It seems that it is working now, and will be eventually approved soon. I will be happy when it is approved.
<div><br>
</div>
<div>Anyway, I need more information about how to develop a service driver and a device driver for VPN plugin. I realize doing reverse-engineering that I need and RPC agent and and RPC between them to communicate and use a kind of callbacks to answer. Where
 I can find documentation about it and some examples? Is there any best practise guide of the use of this architecture?</div>
<div><br>
</div>
<div>Thank you again!</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">
<div><img alt="i2cat" width="96" height="44" src="http://www.i2cat.net/sites/all/themes/i2cat2009beta/media/new/logo.png"><span style="font-size:xx-small"><span style="font-family:Helvetica"><br>
</span></span></div>
<span style="font-size:xx-small"><span style="font-family:Helvetica">Julio C. Barrera Juez</span></span>
<div><span style="font-size:xx-small"><span style="font-family:Helvetica">Office phone:
<a href="tel:%2B34%2093%20357%2099%2027" target="_blank">+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</span><br>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://dana.i2cat.net/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=c98b2d74b41b9c8efe74e5f89d418dc5b64cd5b5003dc82b3d794c290d876d04" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></span></div>








</div>
</div>
<br>
<div><br>
</div>
<div class="gmail_quote">On 19 February 2014 09:13, Julio Carlos Barrera Juez <span dir="ltr">
<<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Thank you very much Bo. I will try all your advices and check if it works!</div>
<div class="gmail_extra">
<div><br clear="all">
<div>
<div dir="ltr">
<div><img alt="i2cat" width="96" height="44" src="http://www.i2cat.net/sites/all/themes/i2cat2009beta/media/new/logo.png"><span style="font-size:xx-small"><span style="font-family:Helvetica"><br>
</span></span></div>
<span style="font-size:xx-small"><span style="font-family:Helvetica">Julio C. Barrera Juez</span></span>
<div><span style="font-size:xx-small"><span style="font-family:Helvetica">Office phone:
<a href="tel:%2B34%2093%20357%2099%2027" target="_blank">+34 93 357 99 27</a><br>
Distributed Applications and Networks Area (DANA)<br>
i2CAT Foundation, Barcelona, Spain</span><br>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://dana.i2cat.net/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=c98b2d74b41b9c8efe74e5f89d418dc5b64cd5b5003dc82b3d794c290d876d04" style="color:rgb(17,85,204)" target="_blank">http://dana.i2cat.net</a></span></div>








</div>
</div>
<br>
<div><br>
</div>
</div>
<div class="gmail_quote">
<div>On 18 February 2014 09:18, Bo Lin <span dir="ltr"><<a href="mailto:linb@vmware.com" target="_blank">linb@vmware.com</a>></span> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div style="font-size:12pt;font-family:times new roman,new york,times,serif">
<div>I wonder whether your neutron server codes have added the "<span style="font-size:21px;white-space:nowrap;font-family:'Arial Unicode MS',Arial,sans-serif"> <span style="font-size:xx-small">VPNaaS integration with service type framework</span></span>" change
 on <a href="https://urldefense.proofpoint.com/v1/url?u=https://review.openstack.org/%23/c/41827/21&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=4a935821d551bb10de76c121ea8f83f57c00bf3a88ac0c73b51d87f96be1524f" target="_blank">https://review.openstack.org/#/c/41827/21</a> ,
 if not, the service_provider option is useless. You need to include the change before developing your own driver.</div>
<div><br>
</div>
<div>QA (In my opinion and sth may be missing):</div>
<div>
<div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">- What is the difference between service drivers and device drivers?</span></div>
</div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">    service drivers are driven by vpn service plugin and are responsible for casting rpc request (CRUD of vpnservices) to and do callbacks from vpn agent.</span></div>








<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">    device drivers are driven by vpn agent and are responsible for implementing specific vpn operations and report vpn running status.</span></div>








<div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif"><br>
</span></div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">- Could I implement only one of them?</span></div>
</div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">    device driver must be implemented based on your own device. Unless the default ipsec service driver is definitely appropriate, suggest you implement
 both of them. After including "VPNaaS integration with service type framework", the service driver work is simple.</span><span style="font-family:arial,helvetica,sans-serif"> </span></div>
<div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif"><br>
</span></div>
<div style="font-family:Helvetica,Arial,sans-serif"><span style="font-family:arial,helvetica,sans-serif">- Whe</span>re I need to put my Python implementation in my OpenStack instance?</div>
</div>
<div style="font-family:Helvetica,Arial,sans-serif">   Do you mean let your instance runs your new codes? The default source codes dir is /opt/stack/neutron, you need to put your new changes into the dir and restart the neutron server.</div>








<div>
<div style="font-family:Helvetica,Arial,sans-serif"><br>
</div>
<div style="font-family:Helvetica,Arial,sans-serif">- How could I configure my OpenStack instance to use this implementation?</div>
</div>
<div style="font-family:Helvetica,Arial,sans-serif">   1.  Add your new codes into source dir</div>
<div style="font-family:Helvetica,Arial,sans-serif">   2. Add appropriate vpnaas service_provider into neutron.conf and add appropriate "vpn_device_driver" option into vpn_agent.ini</div>
<div style="font-family:Helvetica,Arial,sans-serif">   3. restart n-svc and q-vpn</div>
<div style="font-family:Helvetica,Arial,sans-serif"><br>
</div>
<div style="font-family:Helvetica,Arial,sans-serif">Hope help you.</div>
<div style="font-family:Helvetica,Arial,sans-serif"><br>
</div>
</div>
<hr>
<div style="font-size:12pt;font-style:normal;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal">
<b>From: </b>"Julio Carlos Barrera Juez" <<a href="mailto:juliocarlos.barrera@i2cat.net" target="_blank">juliocarlos.barrera@i2cat.net</a>><br>
<b>To: </b>"OpenStack Development Mailing List" <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Sent: </b>Monday, February 17, 2014 7:18:44 PM<br>
<b>Subject: </b>[openstack-dev] How to implement and configure a new Neutron vpnaas        driver from scratch?
<div><br>
<div><br>
</div>
<div dir="ltr">Hi.
<div><br>
</div>
<div>I have asked in the Q&A website without success (<a href="https://urldefense.proofpoint.com/v1/url?u=https://ask.openstack.org/en/question/12072/how-to-implement-and-configure-a-new-vpnaas-driver-from-scratch/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=9uhm%2F59JRfiZ3CXzuhBOpqcTqWk8APswRGJFZ8H2Tos%3D%0A&s=73a239e478da9a7d12255611481016295433378154fb612bd567c30d77788648" target="_blank">https://ask.openstack.org/en/question/12072/how-to-implement-and-configure-a-new-vpnaas-driver-from-scratch/</a>).</div>








<div><br>
</div>
<div>I want to develop a vpnaas implementation. It seems that since Havana, there are plugins, services and device implementations. I like the plugin and his current API, then I don't need to reimplement it. Now I want yo implement a vpnaas driver, and I see
 I have two main parts to take into account: the service_drivers and the device_drivers. IPsec/OpenSwan implementation is the unique sample I've found.</div>
<div><br>
</div>
<div>I'm using devstack to test my experiments.</div>
<div><br>
</div>
<div>I tried to implement VpnDriver Python class extending the main API methods like IPsecVPNDriver does. I placed basic implementation files at the same level of IPsec/OpenSwan does and configured Neutron adding this line to /etc/neutron/neutron.conf file:</div>








<div><br>
</div>
<div><code>service_provider = VPN:VPNaaS:neutron.services.vpn.service_drivers.our_python_filename.OurClassName:default</code><br>
</div>
<div><code><br>
</code></div>
<div><code><span style="font-family:arial,helvetica,sans-serif">I restarted Neutron related services in my devstack instance, but it seemed it didn't work.</span></code></div>
<div><span style="font-family:arial,helvetica,sans-serif"><br>
</span></div>
<div><span style="font-family:arial,helvetica,sans-serif"><br>
</span></div>
<div><span style="font-family:arial,helvetica,sans-serif"><br>
</span></div>
<div><span style="font-family:arial,helvetica,sans-serif">- What is the difference between service drivers and device drivers?</span></div>
<div><span style="font-family:arial,helvetica,sans-serif">- Could I implement only one of them?</span></div>
<div><span style="font-family:arial,helvetica,sans-serif">- Whe</span>re I need to put my Python implementation in my OpenStack instance?</div>
<div>- How could I configure my OpenStack instance to use this implementation?</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>I didn't find almost any documentation about these topics.</div>
<div><br>
</div>
<div>Thank you very much.</div>
</div>
<br>
</div>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=9uhm%2F59JRfiZ3CXzuhBOpqcTqWk8APswRGJFZ8H2Tos%3D%0A&s=46fe06049efb1d29a85b63f7ce101cd69695a368c3da6ea3a91bcd7d2b71ce59" target="_blank">https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=9uhm%2F59JRfiZ3CXzuhBOpqcTqWk8APswRGJFZ8H2Tos%3D%0A&s=46fe06049efb1d29a85b63f7ce101cd69695a368c3da6ea3a91bcd7d2b71ce59</a><br>








</div>
<div><br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
</div>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=638a7f219d00817d3d17746251a9b5090cce130fed11727be8a4cabd09754657" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>








<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
</div>
</div>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=638a7f219d00817d3d17746251a9b5090cce130fed11727be8a4cabd09754657" target="_blank">https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=YmmNfPyv1TNDbHlwFZT9xRPhyBxsQW%2B2aJ3daQ8RC%2BI%3D%0A&s=638a7f219d00817d3d17746251a9b5090cce130fed11727be8a4cabd09754657</a><br>








</div>
<div><br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=d81bebe644cccedf66fedc084cf34c54e82b5a62712e12d1b5e2c6c1c6ee2c81" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>








<br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
</div>
</div>
<a href="https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=d81bebe644cccedf66fedc084cf34c54e82b5a62712e12d1b5e2c6c1c6ee2c81" target="_blank">https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F5etm0B6kVJ9jleIhCvNyA%3D%3D%0A&m=1%2FHmRV%2F3ce%2Bjpzxjfyhv6xjuBhiOBVrajFVFZjco9Zw%3D%0A&s=d81bebe644cccedf66fedc084cf34c54e82b5a62712e12d1b5e2c6c1c6ee2c81</a><br>








</div>
<div><br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
</div>
</div>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
</div>
</div>
<br>
</div>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div>
</div>

<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br></blockquote></div><br></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div></div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br></blockquote></div><br></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div></div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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>
<br></blockquote></div><br></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">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></div></div><br></div><br>_______________________________________________<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>
<br></blockquote></div><br></div>