[openstack-dev] [nova] [neutron] PCI pass-through network support

yongli he yongli.he at intel.com
Tue Oct 29 05:34:53 UTC 2013


On 2013?10?29? 03:22, Robert Li (baoli) wrote:
> Hi Irena,
>
> Thank you very much for your comments. See inline.
>
> --Robert
>
> On 10/27/13 3:48 AM, "Irena Berezovsky" <irenab at mellanox.com 
> <mailto:irenab at mellanox.com>> wrote:
>
>     Hi Robert,
>
>     Thank you very much for sharing the information regarding your
>     efforts. Can you please share your idea of the end to end flow?
>     How do you suggest  to bind Nova and Neutron?
>
>
> The end to end flow is actually encompassed in the blueprints in a 
> nutshell. I will reiterate it in below. The binding between Nova and 
> Neutron occurs with the neutron v2 API that nova invokes in order to 
> provision the neutron services. The vif driver is responsible for 
> plugging in an instance onto the networking setup that neutron has 
> created on the host.
>
> Normally, one will invoke "nova boot" api with the —nic options to 
> specify the nic with which the instance will be connected to the 
> network. It currently allows net-id, fixed ip and/or port-id to be 
> specified for the option. However, it doesn't allow one to specify 
> special networking requirements for the instance. Thanks to the nova 
> pci-passthrough work, one can specify PCI passthrough device(s) in the 
> nova flavor. But it doesn't provide means to tie up these PCI devices 
> in the case of ethernet adpators with networking services. Therefore 
> the idea is actually simple as indicated by the blueprint titles, to 
> provide means to tie up SRIOV devices with neutron services. A work 
> flow would roughly look like this for 'nova boot':
>
>       -- Specifies networking requirements in the —nic option. 
> Specifically for SRIOV, allow the following to be specified in 
> addition to the existing required information:
>                . PCI alias
>                . direct pci-passthrough/macvtap
>                . port profileid that is compliant with 802.1Qbh
>         The above information is optional. In the absence of them, the 
> existing behavior remains.
>
>      -- if special networking requirements exist, Nova api creates PCI 
> requests in the nova instance type for scheduling purpose
>
>      -- Nova scheduler schedules the instance based on the requested 
> flavor plus the PCI requests that are created for networking.
>
>      -- Nova compute invokes neutron services with PCI passthrough 
> information if any
>
>      --  Neutron performs its normal operations based on the request, 
> such as allocating a port, assigning ip addresses, etc. Specific to 
> SRIOV, it should validate the information such as profileid, and 
> stores them in its db. It's also possible to associate a port 
> profileid with a neutron network so that port profileid becomes 
> optional in the —nic option. Neutron returns  nova the port 
> information, especially for PCI passthrough related information in the 
> port binding object. Currently, the port binding object contains the 
> following information:
>           binding:vif_type
>           binding:host_id
>           binding:profile
>           binding:capabilities
(openstack bonce stop me to sent to so many people at one time, so i 
remove cc & to, hope every one can see this)

i heard of some nic passthrough solution in summary, and you metioned 
this, in high level of implement the NIC passthrough there is:
           hardware VEB (Virtual ethernet Switches )
           the nic need external switch like 802.1qbg

so question is:
           where is the diffrent type infomation?
           does  802.1qbg need know which port the PF connected to?
>
>     -- nova constructs the domain xml and plug in the instance by 
> calling the vif driver. The vif driver can build up the interface xml 
> based on the port binding information.
>
>
>
>     The blueprints you registered make sense. On Nova side, there is a
>     need to bind between requested virtual network and PCI
>     device/interface to be allocated as vNIC.
>
>     On the Neutron side, there is a need to  support networking
>     configuration of the vNIC. Neutron should be able to identify the
>     PCI device/macvtap interface in order to apply configuration. I
>     think it makes sense to provide neutron integration via dedicated
>     Modular Layer 2 Mechanism Driver to allow PCI pass-through vNIC
>     support along with other networking technologies.
>
>
> I haven't sorted through this yet. A neutron port could be associated 
> with a PCI device or not, which is a common feature, IMHO. However, a 
> ML2 driver may be needed specific to a particular SRIOV technology.
>
>     During the Havana Release, we introduced Mellanox Neutron plugin
>     that enables networking via SRIOV pass-through devices or macvtap
>     interfaces.
>
>     We want to integrate our solution with PCI pass-through Nova
>     support.  I will be glad to share more details if you are interested.
>
>
> Good to know that you already have a SRIOV implementation. I found out 
> some information online about the mlnx plugin, but need more time to 
> get to know it better. And certainly I'm interested in knowing its 
> details.
>
>     The PCI pass-through networking support is planned to be discussed
>     during the summit: http://summit.openstack.org/cfp/details/129. I
>     think it’s worth to drill down into more detailed proposal and
>     present it during the summit, especially since it impacts both
>     nova and neutron projects.
>
> I agree. Maybe we can steal some time in that discussion.
>
>     Would you be interested in collaboration on this effort? Would you
>     be interested to exchange more emails or set an IRC/WebEx meeting
>     during this week before the summit?
>
>
> Sure. If folks want to discuss it before the summit, we can schedule a 
> webex later this week. Or otherwise, we can continue the discussion 
> with email.
>
>     Regards,
>
>     Irena
>
>     *From:*Robert Li (baoli) [mailto:baoli at cisco.com]
>     *Sent:* Friday, October 25, 2013 11:16 PM
>     *To:* prashant.upadhyaya at aricent.com
>     <mailto:prashant.upadhyaya at aricent.com>; Irena Berezovsky;
>     yunhong.jiang at intel.com <mailto:yunhong.jiang at intel.com>;
>     chris.friesen at windriver.com <mailto:chris.friesen at windriver.com>;
>     yongli.he at intel.com <mailto:yongli.he at intel.com>
>     *Cc:* OpenStack Development Mailing List; Brian Bowen (brbowen);
>     Kyle Mestery (kmestery); Sandhya Dasu (sadasu)
>     *Subject:* Re: [openstack-dev] [nova] [neutron] PCI pass-through
>     network support
>
>     Hi Irena,
>
>     This is Robert Li from Cisco Systems. Recently, I was tasked to
>     investigate such support for Cisco's systems that support VM-FEX,
>     which is a SRIOV technology supporting 802-1Qbh. I was able to
>     bring up nova instances with SRIOV interfaces, and establish
>     networking in between the instances that employes the SRIOV
>     interfaces. Certainly, this was accomplished with hacking and some
>     manual intervention. Based on this experience and my study with
>     the two existing nova pci-passthrough blueprints that have been
>     implemented and committed into Havana
>     (https://blueprints.launchpad.net/nova/+spec/pci-passthrough-base and
>     https://blueprints.launchpad.net/nova/+spec/pci-passthrough-libvirt),
>      I registered a couple of blueprints (one on Nova side, the other
>     on the Neutron side):
>
>     https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov
>
>     https://blueprints.launchpad.net/neutron/+spec/pci-passthrough-sriov
>
>     in order to address SRIOV support in openstack.
>
>     Please take a look at them and see if they make sense, and let me
>     know any comments and questions. We can also discuss this in the
>     summit, I suppose.
>
>     I noticed that there is another thread on this topic, so copy
>     those folks  from that thread as well.
>
>     thanks,
>
>     Robert
>
>     On 10/16/13 4:32 PM, "Irena Berezovsky" <irenab at mellanox.com
>     <mailto:irenab at mellanox.com>> wrote:
>
>         Hi,
>
>         As one of the next steps for PCI pass-through I would like to
>         discuss is the support for PCI pass-through vNIC.
>
>         While nova takes care of PCI pass-through device resources
>          management and VIF settings, neutron should manage their
>         networking configuration.
>
>         I would like to register asummit proposal to discuss the
>         support for PCI pass-through networking.
>
>         I am not sure what would be the right topic to discuss the PCI
>         pass-through networking, since it involve both nova and neutron.
>
>         There is already a session registered by Yongli on nova topic
>         to discuss the PCI pass-through next steps.
>
>         I think PCI pass-through networking is quite a big topic and
>         it worth to have a separate discussion.
>
>         Is there any other people who are interested to discuss it and
>         share their thoughts and experience?
>
>         Regards,
>
>         Irena
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131029/213d8837/attachment.html>


More information about the OpenStack-dev mailing list