<div dir="ltr"><div>Hi.</div><div><br></div>After 8 months of the patch creation and being abandoned weeks ago (<a href="https://review.openstack.org/#/c/41827/">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 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 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://review.openstack.org/#/c/74156/" target="_blank">https://review.openstack.org/#/c/74156/</a> and <a href="https://review.openstack.org/#/c/74144/" 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 class=""><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 class="h5"><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 size="1" style="font-size:xx-small"><span style="font-family:Helvetica"><br>



</span></span></div><span size="1" style="font-size:xx-small"><span style="font-family:Helvetica">Julio C. Barrera Juez</span></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=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 size="1" style="font-size:xx-small"><span style="font-family:Helvetica"><br>




</span></span></div><span size="1" style="font-size:xx-small"><span style="font-family:Helvetica">Julio C. Barrera Juez</span></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" 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><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></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><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"><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><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><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></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></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">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>