<div dir="ltr">Adding openstack-dev mailer as this discussion is gathering good momentum.<div><br></div><div>This thread was started in the context of the blueprint (<a href="https://blueprints.launchpad.net/neutron/+spec/adv-services-in-vms" target="_blank">https://blueprints.launchpad.net/neutron/+spec/adv-services-in-vms</a>) and the initial face-to-face discussions we had with a number of people on this thread.<br>

<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">~Sumit.<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 28, 2013 at 10:41 AM, P Balaji-B37839 <span dir="ltr"><<a href="mailto:B37839@freescale.com" target="_blank">B37839@freescale.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Thanks Greg for pulling into this thread.<u></u><u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Good that we are seeing converging thoughts and discussions.<u></u><u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Please find inline comments.<u></u><u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Regards,<u></u><u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Balaji.P<u></u><u></u></span></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in">
<p><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Ravi Chunduru [mailto:<a href="mailto:ravivsn@gmail.com" target="_blank">ravivsn@gmail.com</a>]
<br>
<b>Sent:</b> Saturday, September 28, 2013 12:43 AM<br>
<b>To:</b> Bob Melander (bmelande)<br>
<b>Cc:</b> Geoff Arnold; Regnier, Greg J; Cummings, Gregory D; David Chang (dwchang); Elzur, Uri; Gary Duan; Joseph Swaminathan; Kanzhe Jiang; Kuang-Ching Wang; Kyle Mestery (kmestery); Maciocco, Christian; Marc Benoit; P Balaji-B37839; Rajesh Mohan; Rudrajit
 Tapadar (rtapadar); Sridar Kandaswamy (skandasw); Sumit Naiksatam; Yi Sun<br>
<b>Subject:</b> Re: Service VM discussion - mgmt ifs<u></u><u></u></span></p>
</div>
<p><u></u> <u></u></p>
<div>
<p>I am glad we are having a good discussion here. Please see my comments in line.<u></u><u></u></p>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>Thanks,<u></u><u></u></p>
</div>
<div>
<p>-Ravi.<u></u><u></u></p>
<div>
<p style="margin-bottom:12pt"><u></u> <u></u></p>
<div>
<p>On Fri, Sep 27, 2013 at 11:11 AM, Bob Melander (bmelande) <<a href="mailto:bmelande@cisco.com" target="_blank">bmelande@cisco.com</a>> wrote:<u></u><u></u></p>
<div>
<div>
<p>Good points Ravi. Some comments from me inline.<br>
<br>
Thanks,<u></u><u></u></p>
</div>
<div>
<p>Bob<u></u><u></u></p>
</div>
<div>
<p style="margin-bottom:12pt"><br>
27 sep 2013 kl. 19:31 skrev "Ravi Chunduru" <<a href="mailto:ravivsn@gmail.com" target="_blank">ravivsn@gmail.com</a>>:<u></u><u></u></p>
</div>
<div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<div>
<p>Hope I am not too late on this thread. I have definitely missed earlier discussions. So some of my thoughts would have been already discussed.
<u></u><u></u></p>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p> I want to write down my thoughts and be on same page with you all.
<u></u><u></u></p>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>1) Service VM management Network:  <u></u><u></u></p>
</div>
<div>
<p>Management interface for the service VM must be always reachable. It means even if the virtual networks are blogged, this interface must be reachable to plugin. <u></u><u></u></p>
</div>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>It means if the management interface should be from management network. Does it mean we should have a bridge network type for management network?<u></u><u></u></p>
</div>
<div>
<p>I suggest going with approach like in Vmware solution. The hypervisor opens up serial port with each guest appliance. Host sees it as a unix socket and guest sees it as a serial port.  This way reaching management network is reliable and
 not collide with data traffic. Thoughts?<u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<p>I think this a nice feature to provide. I think the framework should provide both options, serial port and network interface for management since it cannot be guaranteed all appliances will support serial port access.<u></u><u></u></p>



</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>Ravi> I completely agree with this. <u></u><u></u></p>
</div>
<div>
<p>Management network interface can be used provided there is no service VM migration. <u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">[P Balaji-B37839] We used Virtio-Serial port on KVM hypervisor for propagation of configuration from OS-Controller to Compute Node in our Network Service
 Chain PoC implementation. Discussing with Daniel [Nova – Libvirt Lead] to make it more generic and secure. As Virtio-Serial port will give access to Host from Guest VM, We should think of Host security. Right now Apparmor for Libvirt is taking care of it.
 We are working on BP for this.</span></i></b><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span></p>
</div>
<blockquote style="border-style:none none none solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p><br>
<br>
<u></u><u></u></p>
<div>
<div>
<div>
<p>2) Data interfaces  <u></u><u></u></p>
</div>
<div>
<p>It is always possible for user to add/delete networks from the services. For example, user can decide to have fwaas for a given virtual network or delete.  <u></u><u></u></p>
</div>
<div>
<p>The problem becomes complex when a service VM needs to listen on IP from a subnet. Say any L3 services like SSL, Load balancer needs to listen on IP address. These IPs can change and sometimes comes from various networks.<u></u><u></u></p>



</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>Say a loadbalancer has a VIP coming from Network 1, and deleted a VIP from Network 2. It means we need to hotplug a port from Network 1 and delete a port from Network 2 on the service VM. <u></u><u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>If there are 100 networks, then it needs 100 ports? I am fine with it but Should we not think about a single port with IPs coming from all the configured networks?<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<p>In service VM work we have been doing we have been making use of VLAN trunking which is one way of dealing with this. The service VM has a single interface (or a small number of them) for data traffic. When attached to a particular tenant
 network, that network is trunked on the port used by the service VM. Benefits of this is this is that no vif hot plugging is needed and few VIFs are needed (I think PCI will limit the number VIFs possible to something much less than 100) Downside is that the
 plugin needs to support VIF trunking, which afaik only the Cisco N1kv plugin supports. There is a blueprint by Kyle Mestery to add VLAN trunking to more plugins. ML2 would be a good next candidate. I think the framework should aim to support a few different
 "attachment" methods, hot-plugging being one.<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p> <u></u><u></u></p>
</div>
<div>
<p>Ravi> That is a good solution. <u></u><u></u></p>
</div>
<div>
<p>Service VM plugin analyzes the config and can make use of this to add or remove network from multi segment domain.<u></u><u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>3) Multi tenancy support<u></u><u></u></p>
</div>
<div>
<p>If a service VM is by provider, it definitely should have multi tenancy support. Its quite possible for user to go with shared service VM for cost cut downs. In such cases the how does service VM should address overlapped networks. Unless
 service VMs implement tenant isolation in its implementation its a limitation.<u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<p>Agree completely about the benefit of multi-tenancy. Likely this will involve creating something like virtual contexts inside the service VM and that will be appliance dependent. Therefore it is less clear to me how much of this can be
 provided by the framework.<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p>Ravi> We may need to provide reference implementation. Hence asked.<span style="color:rgb(31,73,125)"><u></u><u></u></span></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">[P Balaji-B37839]  Tenants will be having multiple configurations based on their deployment. For a Service VM shared by provider applying tenant specific
 configuration by creating virtual context is good.<u></u><u></u></span></i></b></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Frame work should address the Sharing of Service VM by Provider to multiple tenants and tenant specific configuration mapping.<u></u><u></u></span></i></b></p>



<p> <u></u><u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p><br>
<br>
<u></u><u></u></p>
<div>
<div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>4) Service VM functionality<u></u><u></u></p>
</div>
<div>
<p>Seeing big picture, a service VM will be replaced with Vendor appliances replacing the reference implementations say HAproxy or iptables firewall etc.,  Following this Blueprint , obvious next target is service insertion/chaining etc.,
 Going by this direction - we should consider a service VM as container of multiple services. <u></u><u></u></p>
</div>
<div>
<p>- Service VM must define set of services it can service<u></u><u></u></p>
</div>
<div>
<p>- Service VM must have set of capabilities per service for Service Scheduler to take an effective decision<u></u><u></u></p>
</div>
<div>
<p>- Future design of service insertion must be aware of the fact that a service VM has multiple services and utilize one or more services with out leaving the VM( greatly helps in improving latency)<u></u><u></u></p>

</div>
<div>
<p>With this in consideration I wanted to name it as appliance and each service as  a network function. But I understand it draws up big discussions :)<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<div>
<p>The way I interpret your text above we have a similar abstraction but in our case we call it a "hosting entity". A hosting entity hosts service instances (in our case we only have one type of service so far - routing) that materializes
 the logical resources of the service (routers in our case).<u></u><u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>We do scheduling of logical service resources across hosting entities and if need be spin up new VMs.<u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<p>Ravi> Right, we need a good scheduling logic that takes on attributes what can a service VM support and decide on selection.<u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">[P Balaji-B37839] Correct Ravi, I think this frame work should address generic scheduling so that the appliance vendors can plug-in their Service VM Attributes.</span></i></b><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span></p>



</div>
<div>
<p><u></u> <u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p><br>
<br>
<u></u><u></u></p>
<div>
<div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>5) High availability<u></u><u></u></p>
</div>
<div>
<p>In any realistic deployments no user would want a bottleneck for a service with only one service VM. <br>
We require redundancy in the solution for real deployment to happen.<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<p>When it comes to HA and bottlenecks I would also like to being into the picture the task of making configurations inside the service VMs. This can be done using a variety of protocols/mechanisms and can be quite heavy in the sense of requiring
 many roundtrips. We've found it to be useful if that can be offloaded and distributed. In our case we have special configuration agents that can run in arbitrary numbers and which take on configuration tasks. The agent is very similar to the l3agent with one
 difference being that it applies configurations on remote appliances. Personally I would like if the l3agent would be evolved to do this<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p><u></u> <u></u></p>
</div>
<blockquote style="border-style:none none none solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>6) Service VM integration with APIs<u></u><u></u></p>
</div>
<div>
<p>I have some thoughts on it. First I would like to know thoughts from you all on the above points.<u></u><u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>Thanks,<u></u><u></u></p>
</div>
<div>
<p>-Ravi.<u></u><u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p>(For those whom I am interacting first... a bit Intro: I am Ravi Chunduru, I worked on firewalls, Alteon Load balancers development and currently with PayPal working in Cloud Engineering team)<u></u><u></u></p>

</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
<div>
<p><u></u> <u></u></p>
</div>
</div>
<div>
<p style="margin-bottom:12pt"><u></u> <u></u></p>
<div>
<p>On Thu, Sep 26, 2013 at 5:56 PM, Geoff Arnold <<a href="mailto:arnoldg@brocade.com" target="_blank">arnoldg@brocade.com</a>> wrote:<u></u><u></u></p>
<div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">Good discussion. <u></u><u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">When I drafted the DNRM blueprint, I made the pessimistic assumption that the variety of VIF plugging patterns, and the number of ways in which services instances might need
 to adapt to different network environments, were going to be so great that it would be premature to try to capture VIF plugging into a single scheme driven by some kind of service metadata. I based this on conversations with developers of various virtual appliances
 in the L3-L7 space, and the kinds of adaptations they had been forced to make to get their products working with different IaaS providers. So I decided to package a service as (effectively) a triple:<u></u><u></u></span></p>



</div>
<ul type="disc">
<li>
<span style="font-size:7pt;font-family:Calibri,sans-serif">a Glance image for the service<u></u><u></u></span></li><li>
<span style="font-size:7pt;font-family:Calibri,sans-serif">a provisioning policy (including Nova parameterization and lifecycle)<u></u><u></u></span></li><li>
<span style="font-size:7pt;font-family:Calibri,sans-serif">a plugin that handled the initialization of a newly-activated service instance<u></u><u></u></span></li></ul>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">If a single metadata-driven scheme for VIF plugging can be made to work, that would be great. (And DNRM could accommodate it using a generic plugin.) I am skeptical, however.<u></u><u></u></span></p>



</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">The comment about extending “</span><span style="font-size:8.5pt;font-family:Calibri,sans-serif">beyond VMs and also support physical devices</span><span style="font-size:7pt;font-family:Calibri,sans-serif">”
 is exactly right, of course. One of the DNRM use cases is policy-based selection of virtual or physical LB instances. (We have a customer waiting…)<u></u><u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">Geoff <u></u><u></u></span></p>
</div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in">
<p><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:
</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"><Regnier>, "<a href="mailto:greg.j.regnier@intel.com" target="_blank">greg.j.regnier@intel.com</a>" <<a href="mailto:greg.j.regnier@intel.com" target="_blank">greg.j.regnier@intel.com</a>><br>



<b>Date: </b>Thursday, September 26, 2013 at 5:19 PM<br>
<b>To: </b>"Bob Melander (bmelande)" <<a href="mailto:bmelande@cisco.com" target="_blank">bmelande@cisco.com</a>><br>
<b>Cc: </b>"Bob Melander (bmelande" <<a href="mailto:bmelande@cisco.com" target="_blank">bmelande@cisco.com</a>>, "Cummings, Gregory D" <<a href="mailto:gregory.d.cummings@intel.com" target="_blank">gregory.d.cummings@intel.com</a>>, "David Chang (dwchang"
 <<a href="mailto:dwchang@cisco.com" target="_blank">dwchang@cisco.com</a>>, "Elzur, Uri" <<a href="mailto:uri.elzur@intel.com" target="_blank">uri.elzur@intel.com</a>>, "<a href="mailto:gduan@varmour.com" target="_blank">gduan@varmour.com</a>" <<a href="mailto:gduan@varmour.com" target="_blank">gduan@varmour.com</a>>,
 Joseph Swaminathan <<a href="mailto:joeswaminathan@gmail.com" target="_blank">joeswaminathan@gmail.com</a>>, Kanzhe Jiang <<a href="mailto:kanzhe.jiang@bigswitch.com" target="_blank">kanzhe.jiang@bigswitch.com</a>>, Kuang-Ching Wang <<a href="mailto:kc.wang@bigswitch.com" target="_blank">kc.wang@bigswitch.com</a>>,
 "<a href="mailto:kmestery@cisco.com" target="_blank">kmestery@cisco.com</a>" <<a href="mailto:kmestery@cisco.com" target="_blank">kmestery@cisco.com</a>>, "Maciocco, Christian" <<a href="mailto:christian.maciocco@intel.com" target="_blank">christian.maciocco@intel.com</a>>,
 Marc Benoit <<a href="mailto:mbenoit@paloaltonetworks.com" target="_blank">mbenoit@paloaltonetworks.com</a>>, P Balaji <<a href="mailto:B37839@freescale.com" target="_blank">B37839@freescale.com</a>>, Rajesh Mohan <<a href="mailto:rajesh.mlists@gmail.com" target="_blank">rajesh.mlists@gmail.com</a>>,
 "<a href="mailto:ravivsn@gmail.com" target="_blank">ravivsn@gmail.com</a>" <<a href="mailto:ravivsn@gmail.com" target="_blank">ravivsn@gmail.com</a>>, "Rudrajit Tapadar (rtapadar" <<a href="mailto:rtapadar@cisco.com" target="_blank">rtapadar@cisco.com</a>>,
 Geoff Arnold <<a href="mailto:arnoldg@brocade.com" target="_blank">arnoldg@brocade.com</a>>, "Sridar Kandaswamy (skandasw" <<a href="mailto:skandasw@cisco.com" target="_blank">skandasw@cisco.com</a>>, "<a href="mailto:sumitnaiksatam@gmail.com" target="_blank">sumitnaiksatam@gmail.com</a>"
 <<a href="mailto:sumitnaiksatam@gmail.com" target="_blank">sumitnaiksatam@gmail.com</a>>, Yi Sun <<a href="mailto:yisun@varmour.com" target="_blank">yisun@varmour.com</a>><br>
<b>Subject: </b>RE: Service VM discussion - mgmt ifs<u></u><u></u></span></p>
</div>
<div>
<div>
<div>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p>
</div>
<div>
<div>
<div>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">+ GregC, RaviC, Balaji.P, GeoffA</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">- DanF</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Thanks Bob, good input,</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Given that a service VM can host multiple logical services, I agree that the scheduling function
 you describe will be required.</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Also mapping of the logical service interfaces to VIFs…</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">As Yi pointed out, another aspect is to define the model for how to plug VIFs into the network(s)
 to build the desired logical topology.</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">It will be good to work up some use cases, e.g. different insertion modes, single network, spanning
 networks,…</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Regards,</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">                Greg</span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<div>
<div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in">
<p><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Bob Melander (bmelande) [<a href="mailto:bmelande@cisco.com" target="_blank">mailto:bmelande@cisco.com</a>]
<br>
<b>Sent:</b> Wednesday, September 25, 2013 2:57 PM<br>
<b>To:</b> Regnier, Greg J; Sumit Naiksatam; Rudrajit Tapadar (rtapadar); David Chang (dwchang); Joseph Swaminathan; Elzur, Uri; Marc Benoit; Sridar Kandaswamy (skandasw); Dan Florea (dflorea); Kanzhe Jiang; Kuang-Ching Wang; Gary Duan; Yi Sun; Rajesh Mohan;
 Maciocco, Christian; Kyle Mestery (kmestery)<br>
<b>Subject:</b> Re: Service VM discussion - mgmt ifs</span><u></u><u></u></p>
</div>
</div>
<p> <u></u><u></u></p>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Hi all,</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Just so first comments from me.</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">A service typically defines logical resources. Such a resource will be attached to </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">networks through ports. During the lifetime of the resource, it may later be detached </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">from some networks. Neutron routers are one concrete example. It is also possible that </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">multiple service resources are hosted by the same VM. This is analogous to how multiple </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Neutron routers can be hosted by a network node (to continue the routing service example).</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Based on this it will be good if the framework includes its own scheduling component.</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Its responsibility is to select an existing VM to host a logical resource or to signal</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">that a new VM needs to be created (in the case no running VMs are suitable). </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Note that the scheduling component of the service VM framework is different from Nova's </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">scheduler. The latter takes care of scheduling of service VMs across compute hosts, </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">whereas the former operate on the logical server resources and the entities to host them </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">(the VMs) </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">The service VM framework scheduler should preferably also allow selection of VIFs to host </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">a logical resource's logical interfaces. To clarify the last statement, one "use case" </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">could be to spin up a VM with more VIFs than are needed initially (e.g., if the VM does </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">not support vif hot-plugging). Another "use case" is if the plugin supports VLAN trunking </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">and attachement of the logical resource's logical interface to a network corresponds to </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">trunking of a network on a VIF.</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">There are at least three (or four) ways to dynamically plug a logical service resource </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">inside a VM to networks:</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">- Create a VM VIF on demand for the logical interface of the service resource </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">("hot-plugging")</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">- Pre-populate the VM with a set of VIFs that can be allocated to logical interfaces of </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">the service resources</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">- Create a set of VM VIFs (on demand or during VM creation) that carry VLAN trunks for </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">which logical (VLAN) interfaces are created and allocated to service resources.</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">When the service VM framework has its own scheduling component it is fairly easy to extend</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">it to go beyond VMs and also support physical devices. VMs and physical devices are all</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">entities that can host logical resources of Neutron services. </span><u></u><u></u></p>
</div>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Thanks,</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif">Bob</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div style="border-style:solid none none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in">
<p><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:
</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"><Regnier>, Greg J <<a href="mailto:greg.j.regnier@intel.com" target="_blank">greg.j.regnier@intel.com</a>><br>
<b>Date: </b>onsdag 25 september 2013 17:09<br>
<b>To: </b>Sumit Naiksatam <<a href="mailto:sumitnaiksatam@gmail.com" target="_blank">sumitnaiksatam@gmail.com</a>>, "Rudrajit Tapadar (rtapadar)" <<a href="mailto:rtapadar@cisco.com" target="_blank">rtapadar@cisco.com</a>>, "David Chang (dwchang)" <<a href="mailto:dwchang@cisco.com" target="_blank">dwchang@cisco.com</a>>,
 Joseph Swaminathan <<a href="mailto:joeswaminathan@gmail.com" target="_blank">joeswaminathan@gmail.com</a>>, "Elzur, Uri" <<a href="mailto:uri.elzur@intel.com" target="_blank">uri.elzur@intel.com</a>>, Marc Benoit <<a href="mailto:mbenoit@paloaltonetworks.com" target="_blank">mbenoit@paloaltonetworks.com</a>>,
 "Sridar Kandaswamy (skandasw)" <<a href="mailto:skandasw@cisco.com" target="_blank">skandasw@cisco.com</a>>, Dan Florea <<a href="mailto:dflorea@cisco.com" target="_blank">dflorea@cisco.com</a>>, Kanzhe Jiang <<a href="mailto:kanzhe.jiang@bigswitch.com" target="_blank">kanzhe.jiang@bigswitch.com</a>>,
 Kuang-Ching Wang <<a href="mailto:kc.wang@bigswitch.com" target="_blank">kc.wang@bigswitch.com</a>>, Gary Duan <<a href="mailto:gduan@varmour.com" target="_blank">gduan@varmour.com</a>>, Yi Sun <<a href="mailto:yisun@varmour.com" target="_blank">yisun@varmour.com</a>>,
 Rajesh Mohan <<a href="mailto:rajesh.mlists@gmail.com" target="_blank">rajesh.mlists@gmail.com</a>>, "Maciocco, Christian" <<a href="mailto:christian.maciocco@intel.com" target="_blank">christian.maciocco@intel.com</a>>, Kyle Mestery <<a href="mailto:kmestery@cisco.com" target="_blank">kmestery@cisco.com</a>>,
 Bob Melander <<a href="mailto:bmelande@cisco.com" target="_blank">bmelande@cisco.com</a>><br>
<b>Cc: </b>"Regnier, Greg J" <<a href="mailto:greg.j.regnier@intel.com" target="_blank">greg.j.regnier@intel.com</a>><br>
<b>Subject: </b>Service VM discussion - mgmt ifs</span><u></u><u></u></p>
</div>
<div>
<p><span style="font-size:10.5pt;font-family:Calibri,sans-serif"> </span><u></u><u></u></p>
</div>
<div>
<div>
<p><b><i><span style="color:rgb(31,73,125)">Hi all,</span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">At the face-to-face meeting we had a discussion about the requirements for service VM management.</span></i></b><u></u><u></u></p>



<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">My takeaway was this:</span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">1)</span><span style="font-size:7pt">     
</span><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">There is a requirement for a management interface for the VM “service VM management port” that was used to manage the VM resource, for example a health monitor in the
 event a VIF quietly went down.  This management interface could be common across services.</span></i></b><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u><u></u></span></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">2)</span><span style="font-size:7pt">     
</span><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">There is also a requirement for a “service management port”  that is used to configure and update the policy/resources of the service, and this interface is service
 specific.  For example adding a rule to a firewall.</span></i></b><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u><u></u></span></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Seeking input as to:</span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><span style="font-size:7pt;font-family:Calibri,sans-serif">1)</span><span style="font-size:7pt">     
</span><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> Does the above description match the discussion at the meeting?</span></i></b><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u><u></u></span></p>



<p><span style="font-size:7pt;font-family:Calibri,sans-serif">2)</span><span style="font-size:7pt">     
</span><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">What are the set of functions needed/desired for the “service VM management” interface?</span></i></b><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u><u></u></span></p>



<p><span style="font-size:7pt;font-family:Calibri,sans-serif">3)</span><span style="font-size:7pt">     
</span><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Other general feedback</span></i></b><span style="font-size:7pt;font-family:Calibri,sans-serif"><u></u><u></u></span></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Thanks,</span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">                Greg</span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></i></b><u></u><u></u></p>
<p><b><i><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">ps.  Feel free to send your feedback to this list, or comment directly on the blueprint.</span></i></b><u></u><u></u></p>

</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p><u></u> <span><font color="#888888"><span><font color="#888888"><u></u></font></span></font></span></p><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
<p>-- <br>
Ravi<u></u><u></u></p>
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></blockquote><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></blockquote><span><font color="#888888"><span><font color="#888888">
</font></span></font></span></div><span><font color="#888888"><span><font color="#888888">
<p><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p><u></u> <u></u></p>
</div>
<p>-- <br>
Ravi<u></u><u></u></p>
</font></span></font></span></div>
</div>
</div>
</div>
</div>

</blockquote></div><br></div></div></div>
</blockquote></div><br></div></div>