<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Hi,</div>
<div><br>
</div>
<div>The following two Work In Progress patches are available for end-to-end SR-IOV networking:</div>
<div>nova client: <a href="https://review.openstack.org/#/c/67503">https://review.openstack.org/#/c/67503</a>/</div>
<div>nova: <a href="https://review.openstack.org/#/c/67500">https://review.openstack.org/#/c/67500</a>/</div>
<div><br>
</div>
<div>Please check the commit messages for how to use them.</div>
<div><br>
</div>
<div>Neutron changes required to support SR-IOV have already been merged. Many thanks to the developers working on them and having them merged in a very short time! They are:</div>
<div><br>
</div>
<div><a href="https://blueprints.launchpad.net/neutron/+spec/vif-details">https://blueprints.launchpad.net/neutron/+spec/vif-details</a></div>
<div><a href="https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile">https://blueprints.launchpad.net/neutron/+spec/ml2-binding-profile</a></div>
<div><a href="https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type">https://blueprints.launchpad.net/neutron/+spec/ml2-request-vnic-type</a></div>
<div><br>
</div>
<div>The above patches combined can be used to develop a neutron plugin that supports SR-IOV. Please note that Although the nova patches are WIP patches, they can be used for your integration testing if you are developing a sr-iov capable neutron plugin.</div>
<div><br>
</div>
<div>If you use devstack, you may need the following patch for devstack to define the PCI whitelist entries:</div>
<div><br>
</div>
<div>
<div>diff --git a/lib/nova b/lib/nova</div>
<div>index fefeda1..995873a 100644</div>
<div>--- a/lib/nova</div>
<div>+++ b/lib/nova</div>
<div>@@ -475,6 +475,10 @@ function create_nova_conf() {</div>
<div>         iniset $NOVA_CONF DEFAULT ${I/=/ }</div>
<div>     done</div>
<div> </div>
<div>+    if [ -n "$PCI_LIST" ]; then</div>
<div>+        iniset_multiline  $NOVA_CONF DEFAULT "pci_passthrough_whitelist" "${PCI_LIST[@]}"</div>
<div>+    fi</div>
<div>+</div>
<div>     # All nova-compute workers need to know the vnc configuration options</div>
<div>     # These settings don't hurt anything if n-xvnc and n-novnc are disabled</div>
<div>     if is_service_enabled n-cpu; then</div>
</div>
<div><br>
</div>
<div>And define something like the following in your localrc file:</div>
<div>
<div>PCI_LIST=('{"vendor_id":"1137","product_id":"0071","address":"*:0a:00.*","physical_network":"physnet1"}'</div>
<div>                   '{"vendor_id":"1137","product_id":"0071"}')</div>
</div>
<div>Basically it's a bash array of strings with each string being a json dict. Checkout <a href="https://review.openstack.org/#/c/67500">https://review.openstack.org/#/c/67500</a> for the syntax.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Robert</div>
<div><br>
</div>
</body>
</html>