<div dir="ltr">Hi Ivan,<div>The approach looks very interesting and seems to be reasonable effort to make it work with kuryr as alternative to the 'VLAN aware VM' approach.</div><div>Having container presented as neutron entity has its value, especially for visibility/monitoring (i.e mirroring) and security  (i.e applying security groups).</div><div>But I do think that for short term, this approach is a good way to provide Container in VM  support.</div><div>I  think it's worth to submit devref to kuryr to move forward.</div><div>BR,</div><div>Irena</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 12, 2016 at 2:29 PM, Coughlan, Ivan <span dir="ltr"><<a href="mailto:ivan.coughlan@intel.com" target="_blank">ivan.coughlan@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-IE" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>Overview<u></u><u></u></b></p>
<p class="MsoNormal">Kuryr proposes to address the issues of double encapsulation and exposure of containers as neutron entities when containers are running within VMs.<u></u><u></u></p>
<p class="MsoNormal">As an alternative to the vlan-aware-vms and use of ovs within the VM, we propose to:<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Use allowed-address-pairs configuration for the VM neutron port<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Use IPVLAN for wiring the Containers within VM<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">In this way:<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Achieve efficient data path to container within VM<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Better leverage OpenStack EPA(Enhanced Platform Awareness) features to accelerate the data path (more details below)<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Mitigate the risk of vlan-aware-vms not making neutron in time<u></u><u></u></p>
<p><u></u><span>-<span style="font:7.0pt "Times New Roman"">         
</span></span><u></u>Provide a solution that works on existing and previous openstack releases<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This work should be done in a way permitting the user to optionally select this feature.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<h2><b><span lang="EN-US" style="font-size:11.0pt;line-height:105%;font-family:"Calibri",sans-serif;color:windowtext">Required Changes<u></u><u></u></span></b></h2>
<p class="MsoNormal">The four main changes we have identified in the current kuryr codebase are as follows:<u></u><u></u></p>
<p style="margin-right:0cm;margin-bottom:8.0pt;margin-left:18.0pt;line-height:105%">
<u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u>Introduce an option of enabling “IPVLAN in VM” use case. This can be achieved by using a config file option or possibly passing a command line argument. The IPVLAN master interface must also be identified.<u></u><u></u></p>
<p style="margin-right:0cm;margin-bottom:8.0pt;margin-left:18.0pt;line-height:105%">
<u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u>If using “IPVLAN in VM” use case, Kuryr should no longer create a new port in Neutron or the associated VEth pairs. Instead, Kuryr will create a new IPVLAN slave interface on top of the VM’s master interface and pass this slave
 interface to the Container netns.<u></u><u></u></p>
<p style="margin-right:0cm;margin-bottom:8.0pt;margin-left:18.0pt;line-height:105%">
<u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u>If using “IPVLAN in VM” use case, the VM’s port ID needs to be identified so we can associate the additional IPVLAN addresses with the port. This can be achieved by querying Neutron’s show-port function and passing the VMs IP
 address.<u></u><u></u></p>
<p style="margin-right:0cm;margin-bottom:8.0pt;margin-left:18.0pt;line-height:105%">
<u></u><span style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u>If using “IPVLAN in VM” use case, Kuryr should associate the additional IPVLAN addresses with the VMs port. This can be achieved using Neutron’s
<span style="font-family:"Courier New"">allowed-address-pairs</span> flag in the <span style="font-family:"Courier New"">
port-update</span> function. We intend to make use of Kuryr’s existing IPAM functionality to request these IPs from Neutron.<u></u><u></u></p>
<p class="MsoNormal"><b><u></u> <u></u></b></p>
<p class="MsoNormal"><b>Asks<u></u><u></u></b></p>
<p class="MsoNormal">We wish to discuss the pros and cons.<u></u><u></u></p>
<p class="MsoNormal">For example, containers exposure as proper neutron entities and the utility of neutron’s allowed-address-pairs is not yet well understood.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">We also wish to understand if this approach is acceptable for kuryr?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>EPA<u></u><u></u></b></p>
<p class="MsoNormal"><span style="color:#252525;background:white">The Enhanced Platform Awareness initiative is a continuous program to enable fine-tuning of the platform for virtualized network functions.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#252525;background:white">This is done by exposing the processor and platform capabilities through the management and orchestration layers.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#252525;background:white">When a virtual network function is instantiated by an Enhanced Platform Awareness enabled orchestrator, the application requirements can be more efficiently matched with the platform capabilities.</span><u></u><u></u></p>
<p class="MsoNormal"><a href="http://itpeernetwork.intel.com/openstack-kilo-release-is-shaping-up-to-be-a-milestone-for-enhanced-platform-awareness/" target="_blank">http://itpeernetwork.intel.<wbr>com/openstack-kilo-release-is-<wbr>shaping-up-to-be-a-milestone-<wbr>for-enhanced-platform-<wbr>awareness/</a><u></u><u></u></p>
<p class="MsoNormal"><a href="https://networkbuilders.intel.com/docs/OpenStack_EPA.pdf" target="_blank">https://networkbuilders.intel.<wbr>com/docs/OpenStack_EPA.pdf</a><u></u><u></u></p>
<p class="MsoNormal"><a href="https://www.brighttalk.com/webcast/12229/181563/epa-features-in-openstack-kilo" target="_blank">https://www.brighttalk.com/<wbr>webcast/12229/181563/epa-<wbr>features-in-openstack-kilo</a><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Regards,<u></u><u></u></p>
<p class="MsoNormal">Ivan….<u></u><u></u></p>
</div>
<p>------------------------------<wbr>------------------------------<wbr>--<br>
Intel Research and Development Ireland Limited<br>
Registered in Ireland<br>
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare<br>
Registered Number: 308263</p>


<p>This e-mail and any attachments may contain confidential material for the
sole use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.</p>

<p></p>
</div>

<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br></div>