Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1167099 - Packstack - Adding support for Neutron ML2 SR-IOV mechanism driver
Packstack - Adding support for Neutron ML2 SR-IOV mechanism driver
Status: CLOSED CURRENTRELEASE
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-packstack (Show other bugs)
6.0 (Juno)
Unspecified Unspecified
high Severity high
: ---
: 8.0 (Liberty)
Assigned To: Ivan Chavero
Toni Freger
https://wiki.openstack.org/wiki/SR-IO...
: TestOnly, Triaged, ZStream
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-23 10:49 EST by Itzik Brown
Modified: 2017-01-30 18:44 EST (History)
22 users (show)

See Also:
Fixed In Version: openstack-packstack-7.0.0-0.8.dev1661.gaf13b7e.el7ost
Doc Type: Bug Fix
Doc Text:
The Red Hat OpenStack Platform 8 release adds the support for OpenStack Networking ML2 SR-IOV driver during Packstack installation. For this feature to work, you have to add 'sriovnicswitch' option to the 'CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS' parameter. If you fail to add this option, Packstack will not install the driver. For 'physical_device_mappings' parameter to be set in the '/etc/neutron/plugins/ml2/sriov_agent.ini' file, you have to set the 'CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS' directive. For example: CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=physnet1:eth1,physnet2:eth2
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-01-30 18:44:42 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
SRIOV answer file (45.34 KB, text/plain)
2016-02-09 16:14 EST, Ivan Chavero
no flags Details
answer file 1controller 1compute (45.43 KB, text/plain)
2016-02-10 02:47 EST, Itzik Brown
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
OpenStack gerrit 142251 None None None Never
OpenStack gerrit 153541 None None None Never
OpenStack gerrit 214302 None None None Never
OpenStack gerrit 221991 None None None Never
OpenStack gerrit 254585 None None None Never
OpenStack gerrit 301142 None None None 2016-04-14 13:53 EDT

  None (edit)
Description Itzik Brown 2014-11-23 10:49:24 EST
Description of problem:
Missing support in installer to configure sriovnicswitch Mechanism driver in Neutron and pci_passthrough_whitelist to enable booting Instances with 

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.
2.
3.

Actual results:
No support for SR-IOV in installer

Expected results:
Support for configuring SR-IOV mechanism driver and pci_passthrough_whitelist in nova configuration

Additional info:
Comment 1 Itzik Brown 2014-11-24 02:37:10 EST
Description of problem:
Missing support in installer to configure sriovnicswitch Mechanism driver in Neutron and pci_passthrough_whitelist to enable booting Instances with "SR-IOV" interface

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.
2.
3.

Actual results:
No support for SR-IOV in installer

Expected results:
Support for configuring SR-IOV mechanism driver and pci_passthrough_whitelist in nova configuration

Additional info:
Comment 2 Itzik Brown 2014-11-24 10:29:03 EST
 In order to support SR-IOV in RHOS there are some requirements from
 the
 installer (packstack/staypuft)

 1. There should be an option to configure "sriovnicswitch"
 mechanism
 driver
 that means:
  
    a. In /etc/neutron/plugins/ml2/ml2_conf.ini:
    
       Adding 'sriovnicswitch' to mechanism_drivers option in
       /etc/neutron/plugins/ml2/ml2_conf.ini
      
       Adding 'openvswitch' to mechanism_drivers option in
       /etc/neutron/plugins/ml2/ml2_conf.ini ( For DHCP support)
    
       Adding 'vlan' to type_drivers and tenant_network_types
       options

       network_vlan_ranges should be configured as well

    b. When enabling sriovnicswitch mechanism driver Neutron server
    should run with the following configuration files:

       /etc/neutron/neutron.conf, /etc/neutron/plugin.ini (points to
       /etc/neutron/plugins/ml2/ml2_conf.ini) ,
       /etc/neutron/plugins/ml2/ml2_conf_sriov.ini

       So /usr/lib/systemd/system/neutron-server.service needs to be
       changed

    c. Make sure when creating SR-IOV tenant network the type of the
    network is VLAN.
    
    d. When specifying sriovnicswitch as mechanism driver openvswitch should also be enabled


 2. There should be a way to add "vendor_idrodcut_id" entries to
 /etc/neutron/plugins/ml2/ml2_conf_sriov.ini and/or add supported
 couples
 (e.g. ones that are already supported by libvirt).

 3. There should be a way to add pci_passthrough_whitelist to
 /etc/nova/nova.conf.

    This configuration will hopefully going to be changed so maybe
    just configuring a PF - i.e. the installer just accepts the PF name
    and configure the pci_passthrough_whitelist).

 4. Add an option to configure which Compute supports SR-IOV and add
 a sanity check to see whether they support SR-IOV,Are there any VFs
 ,iommu  etc.

 5. Packstack should configure vfio_iommu_type1 to be loaded with allow_unsafe_interrupts=1
Comment 4 Nir Yechiel 2014-11-24 10:54:29 EST
Hi Alvaro,

Starting with Juno/OSP-6 it is now possible to bring up a VM instance with SR-IOV enabled port. In order to support that there are couple of things we need to do in the installer side. Realistically, we are not going to have any support for this on Staypuft or TripleO at this point, but I think we should enable the basic minimum config in Puppet and PackStack to allow users to setup the environment correctly. These should be small and scoped changes: looking at comment #2 above, I think that only part 1 and 2 should be implemented.

Can you take a look on this and share your thoughts? We can have a follow up call/discussion to provide more info.

Thanks,
Nir
Comment 5 Alvaro Lopez Ortega 2014-11-25 10:22:38 EST
Lukas, could you please take a look at this?
Comment 6 Nir Yechiel 2014-11-25 12:01:48 EST
Please let us know how can we help to provide all the information you need here. We can also setup a call to disucss this

Thanks,
Nir
Comment 7 Emilien Macchi 2014-12-17 08:44:41 EST
I'm making a patch upstream in puppet-neutron, it may help: https://review.openstack.org/#/c/142251/
Comment 9 Itzik Brown 2015-02-02 04:54:21 EST
PciPassthroughFilter should also be added to scheduler_default_filters in /etc/nova/nova.conf.
Comment 12 Ivan Chavero 2015-07-26 19:30:58 EDT
The puppet changes have been merged, we have to add the proper options to packstack.
Lukas do you need a hand with this?
Comment 13 Ivan Chavero 2015-08-18 14:48:08 EDT
Created patch for packstack: https://review.openstack.org/214302
Comment 14 Ivan Chavero 2015-08-25 15:23:58 EDT
The patch works but we don't have a way to really test it. Do a scratch build be enought to send it to the people that can do the tests?
Comment 15 Itzik Brown 2015-08-26 01:18:17 EDT
Once I have a build I can verify it.
Comment 19 Itzik Brown 2015-09-08 08:07:05 EDT
I added comments to the upstream patch.
Also I think that instead of adding sriov_nic section in /etc/neutron/plugin.ini it the /etc/neutron/plugins/ml2/ml2_conf_sriov.ini file should be modified and linked in /etc/neutron/conf.d/neutron-server.
Comment 20 Ivan Chavero 2015-09-09 20:14:13 EDT
(In reply to Itzik Brown from comment #19)
> I added comments to the upstream patch.
> Also I think that instead of adding sriov_nic section in
> /etc/neutron/plugin.ini it the /etc/neutron/plugins/ml2/ml2_conf_sriov.ini
> file should be modified and linked in /etc/neutron/conf.d/neutron-server.

i've created a patch for puppet-neutron that addresses this:  https://review.openstack.org/221991
Comment 21 Ivan Chavero 2015-09-29 16:30:37 EDT
i've updated the upstream review. Itzik, can you check it out?
Comment 29 Ivan Chavero 2015-11-20 19:33:40 EST
can i have pm and devel acks please?
Comment 32 Itzik Brown 2015-12-13 08:17:38 EST
Checked using:
RHEL7.2
RHOS 8
openstack-packstack-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch
openstack-packstack-puppet-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch

SR-IOV agent is not installed  when CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=y

An example for CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS with the default values would be great
Comment 33 Ivan Chavero 2015-12-15 12:26:15 EST
Testing this problem
Comment 34 Ivan Chavero 2015-12-15 13:52:16 EST
(In reply to Itzik Brown from comment #32)
> Checked using:
> RHEL7.2
> RHOS 8
> openstack-packstack-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch
> openstack-packstack-puppet-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch
> 
> SR-IOV agent is not installed  when CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=y
> 

in order for this feature to work you have to add: sriovnicswitch to CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS
if this is not added packstack will not install it

> An example for CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS with the default
> values would be great

the values are specified in the answer file but are not in the packstack documentation this can be fixed but i think this is out of the scope of this bug.
Comment 35 Itzik Brown 2015-12-15 17:22:50 EST
For sure - Adding sriovnicswitch to CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS is a requirement.
Comment 36 Itzik Brown 2015-12-20 06:08:33 EST
Checked with:
openstack-packstack-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch
openstack-packstack-puppet-7.0.0-0.8.dev1661.gaf13b7e.el7ost.noarch

The file /etc/neutron/plugins/ml2/sriov_agent.ini is included in the service file but physical_device_mappings under sriov_nic section is commented out.

physical_device_mappings is included in /etc/neutron/plugins/ml2/ml2_conf.ini but /etc/neutron/plugins/ml2/ml2_conf.ini is not included in the service file:

# cat /usr/lib/systemd/system/neutron-sriov-nic-agent.service
[Unit]
Description=OpenStack Neutron SR-IOV NIC Agent
After=syslog.target network.target

[Service]
Type=simple
User=neutron
ExecStart=/usr/bin/neutron-sriov-nic-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/sriov_agent.ini --config-dir /etc/neutron/conf.d/common --config-dir /etc/neutron/conf.d/neutron-sriov-nic-agent --log-file /var/log/neutron/sriov-nic-agent.log
PrivateTmp=false
KillMode=process

[Install]
WantedBy=multi-user.target
Comment 37 Ivan Chavero 2016-01-05 13:03:30 EST
For physical_device_mappings to be set in the /etc/neutron/plugins/ml2/sriov_agent.ini you have to set the CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS directive.

eg.
CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=physnet1:eth1,physnet2:eth2
Comment 39 Itzik Brown 2016-01-18 07:02:24 EST
Checked with:
openstack-packstack-puppet-7.0.0-0.10.dev1684.g87ec498.el7ost.noarch
openstack-packstack-7.0.0-0.10.dev1684.g87ec498.el7ost.noarch

/etc/neutron/plugins/ml2/ml2_conf_sriov.ini is not read by neutron-server and 
ml2_sriov section is not included in ml2_conf.ini.
Comment 40 Ivan Chavero 2016-01-22 02:37:52 EST
confirmed /etc/neutron/plugins/ml2/ml2_conf_sriov.ini is not being read, checking the puppet module
Comment 41 Ivan Chavero 2016-01-22 14:17:44 EST
after checking i remember that the puppet module was modified to reflect the split of the files in neutron sriov [1].

I'm not sure if this should be modified at the neutron puppet module level or the neutron-sriov-nic-agent unit file.

Whtat do you think Itzik?



[1] https://review.openstack.org/#/c/217264/
Comment 42 Itzik Brown 2016-01-24 01:59:35 EST
As part of the installer I think it's possible to add a link such as 
/etc/neutron/conf.d/neutron-server/ml2_conf_sriov.conf -> /etc/neutron/plugins/ml2/ml2_conf_sriov.ini
Comment 43 Ivan Chavero 2016-01-25 13:41:59 EST
I was discussed but the problem is in the area of the plugin packaging, we can create this link temporarily while the packaging problem is solved.
Comment 44 Ivan Chavero 2016-01-29 15:28:46 EST
I would like this issue to be addressed on a package level to avoid future problems.

AFAIK the the feature this bug is requesting has been added to Packstack.
Comment 46 Itzik Brown 2016-02-09 04:55:01 EST
Installation failed.
10.35.160.29_neutron.pp.log:

    Notice: /Stage[main]/Neutron::Agents::Metadata/Neutron_metadata_agent_config[DEFAULT/nova_metadata_protocol]/ensure: created
    Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Wrapped exception:
    No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini
    Error: /Stage[main]/Neutron::Plugins::Ml2/Neutron::Plugins::Ml2::Mech_driver[sriovnicswitch]/Neutron_plugin_sriov[ml2_sriov/supported_pci_vendor_devs]/ensure: change from absent to present failed: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Wrapped exception:
    No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini
    Error: /Stage[main]/Neutron::Plugins::Ml2/Neutron::Plugins::Ml2::Mech_driver[sriovnicswitch]/Neutron_plugin_sriov[ml2_sriov/agent_required]/ensure: change from absent to present failed: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a6b587052f1c42eaa3c72c02e9b9ebc1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
    Notice: /Stage[main]/Neutron::Server/Neutron_config[keystone_authtoken/admin_user]/value: value changed '%SERVICE_USER%' to 'neutron'

I checked and /etc/neutron/plugins/ml2/ml2_conf_sriov.ini is present on the controller.
Comment 47 Ivan Chavero 2016-02-09 10:34:22 EST
This problem didn't arise in my previous tests, trying to reproduce
Comment 48 Ivan Chavero 2016-02-09 16:14 EST
Created attachment 1122534 [details]
SRIOV answer file
Comment 49 Ivan Chavero 2016-02-09 17:29:52 EST
Could not reproduce on RHEL using the attached answer file with: openstack-packstack-7.0.0-0.10.dev1682.g42b3426.el7

the sriov configuration is stored in: /etc/neutron/plugins/ml2/ml2_conf.ini 

installed using:

packstack -d --answer-file=ans.txt


There is an error on the sriov log file but it does not appear to be related to this bug, can you confirm?

2016-02-09 11:26:57.251 1805 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [req-d09794d8-2a6e-44b1-9cc5-ab945016e715 - - - - -] SRIOV NIC Agent RPC Daemon Started!
2016-02-09 11:26:57.251 1805 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [req-d09794d8-2a6e-44b1-9cc5-ab945016e715 - - - - -] Agent out of sync with plugin!
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher [-] Exception during message handling: Endpoint does not support RPC version 1.3. Attempted method: security_groups_provider_updated
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher     executor_callback))
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 195, in _dispatch
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher     raise UnsupportedVersion(version, method=method)
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher UnsupportedVersion: Endpoint does not support RPC version 1.3. Attempted method: security_groups_provider_updated
2016-02-09 11:35:12.259 1805 ERROR oslo_messaging.rpc.dispatcher
Comment 50 Itzik Brown 2016-02-10 02:47 EST
Created attachment 1122688 [details]
answer file 1controller 1compute
Comment 51 Itzik Brown 2016-02-10 02:49:41 EST
No I don't think it's related.

My setup:
1 controller node and 1 compute node
RHEL7.2
RHOS8
openstack-packstack-7.0.0-0.11.dev1692.g1b5e83b.el7ost.noarch
openstack-packstack-puppet-7.0.0-0.11.dev1692.g1b5e83b.el7ost.noarch
openstack-neutron-common-7.0.1-9.el7ost.noarch
openstack-neutron-ml2-7.0.1-9.el7ost.noarch
openstack-neutron-openvswitch-7.0.1-9.el7ost.noarch
python-neutron-7.0.1-9.el7ost.noarch
openstack-neutron-7.0.1-9.el7ost.noarch
python-neutronclient-3.1.0-1.el7ost.noarch

I attached the answer file in comment #50
Comment 52 Ivan Chavero 2016-02-11 22:22:29 EST
Do you still have the problem or is just the problem on comment 49
Comment 53 Jon Schlueter 2016-02-19 13:12:28 EST
with how to test/reproduce in comment #49 Moving bug back to ON_QA
Comment 54 Itzik Brown 2016-02-21 08:14:07 EST
Configured 
CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS=15b3:1004,8086:10ca, 8086:1520, 8086:10ed

/etc/neutron/plugins/ml2/ml2_conf_sriov.ini is correct

# egrep -v '#|^$' /etc/neutron/plugins/ml2/ml2_conf_sriov.ini 
[ml2_sriov]
supported_pci_vendor_devs = 15b3:1004,8086:10ca, 8086:1520, 8086:10ed
agent_required = True

But /etc/neutron/plugins/ml2/ml2_conf_sriov.ini is not read by the server.

Was the link issue from comment #39 resolved?
Comment 55 Itzik Brown 2016-02-21 08:26:17 EST
Regarding #54:
I first got the following error:
2016-02-21 14:47:27::ERROR::run_setup::1017::root:: Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/packstack/installer/run_setup.py", line 1012, in main
    _main(options, confFile, logFile)
  File "/usr/lib/python2.7/site-packages/packstack/installer/run_setup.py", line 660, in _main
    runSequences()
  File "/usr/lib/python2.7/site-packages/packstack/installer/run_setup.py", line 627, in runSequences
    controller.runAllSequences()
  File "/usr/lib/python2.7/site-packages/packstack/installer/setup_controller.py", line 81, in runAllSequences
    sequence.run(config=self.CONF, messages=self.MESSAGES)
  File "/usr/lib/python2.7/site-packages/packstack/installer/core/sequences.py", line 109, in run
    step.run(config=config, messages=messages)
  File "/usr/lib/python2.7/site-packages/packstack/installer/core/sequences.py", line 50, in run
    self.function(config, messages)
  File "/usr/lib/python2.7/site-packages/packstack/plugins/puppet_950.py", line 209, in apply_puppet_manifest
    wait_for_puppet(currently_running, messages)
  File "/usr/lib/python2.7/site-packages/packstack/plugins/puppet_950.py", line 123, in wait_for_puppet
    validate_logfile(log)
  File "/usr/lib/python2.7/site-packages/packstack/modules/puppet.py", line 107, in validate_logfile
    raise PuppetError(message)
PuppetError: Error appeared during Puppet run: 10.35.160.29_neutron.pp
Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/6e951bd6bde24343a515027b71f3edd1/modules/neutron/manifests/plugins/ml2/mech_driver.pp
You will find full trace in log /var/tmp/packstack/20160221-142530-8hzOBK/manifests/10.35.160.29_neutron.pp.log

2016-02-21 14:47:27::INFO::shell::94::root:: [10.35.160.29] Executing script:
rm -rf /var/tmp/packstack/6e951bd6bde24343a515027b71f3edd1
2016-02-21 14:47:27::INFO::shell::94::root:: [10.35.160.39] Executing script:
rm -rf /var/tmp/packstack/d1e06edb4c0b465299e5f402431174c0

Then ran again and got the result in #54
Comment 56 Jon Schlueter 2016-02-22 08:27:17 EST
key things I noticed different between provided answer file and file generated by --gen-answer-file

CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch,sriovnicswitch
CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=y
CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=physnet1:eth0,physnet2:eth0

For single node packstack setup this installs, I don't know if
Comment 57 Jon Schlueter 2016-02-22 08:28:02 EST
key things I noticed different between provided answer file and file generated by --gen-answer-file

CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch,sriovnicswitch
CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=y
CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=physnet1:eth0,physnet2:eth0

For single node packstack setup this installs, I don't know if the installed functionality is working as expected though.
Comment 58 Jon Schlueter 2016-02-24 15:42:14 EST
What we noticed was multi-node was showing the issue bug single node installs seemed to install correctly.
Comment 59 Ivan Chavero 2016-02-27 15:40:39 EST
All i one succuesfully installs the sriov agent.
Setting CONFIG_NETWORK_HOSTS to a different node throws a weird behaviour, the sriov agent gets installed in the controller but not on the designed network host.
I'll keep investigating
Comment 60 Ivan Chavero 2016-02-29 16:58:51 EST
ignore comment 59, the agent should be installed on the compute node not the netwrok node.
Comment 61 Ivan Chavero 2016-02-29 18:47:44 EST
With two compute nodes i don't get any error on the sriov agent log file (/var/log/neutron/sriov-nic-agent.log)


I can't test the actual functionality because i don't have hardware that supports sr-iov but in the software part everything works ok.
Comment 70 Ivan Chavero 2016-03-30 02:20:32 EDT
Can we have the meeting on thursday? i'm on MST time
Comment 72 Emilien Macchi 2016-04-01 15:19:57 EDT
> neutron is not installed when the class is applied

This is wrong: https://github.com/openstack/puppet-neutron/blob/master/manifests/plugins/ml2.pp#L176-L187

> it appears to be that the ::neutron::plugins::ml2 class is being applied before the /etc/neutron/plugins/ml2/ml2_conf_sriov.ini

I don't understand this statement.
neutron::plugins::ml2 is for Server.
ml2_conf_sriov.ini is for Agent.

What is the orchestration issue? What says logs? What is the error?
Comment 73 Ivan Chavero 2016-04-01 19:15:23 EDT
ml2_conf_sriov.ini is for server plugin [1], the file for the agent is: /etc/neutron/plugins/ml2/sriov_agent.ini [2]



 this is the error:

ERROR : Error appeared during Puppet run: 10.35.160.29_neutron.pp
Error: Could not set 'present' on ensure: No such file or directory - /etc/neutron/plugins/ml2/ml2_conf_sriov.ini at 37:/var/tmp/packstack/a7409c145c394a418eae9a0942c06bb5/modules/neutron/manifests/plugins/ml2/mech_driver.pp

This is a two node setup: one controller and one compute node, the error comes from the controller.

The odd part is that when i run the packstack or the manifest a second time the error does not appear and the file gets created.

Can the problem be that the class neutron::plugins:ml2 is being executed before the neutron [3] class?


[1] https://github.com/openstack/puppet-neutron/blob/master/lib/puppet/provider/neutron_plugin_sriov/ini_setting.rb#L7
[2] https://github.com/openstack/puppet-neutron/blob/master/lib/puppet/provider/neutron_sriov_agent_config/ini_setting.rb#L7
[3] https://gist.github.com/imcsk8/9fed07d3417eb55790355b3a87301f8e#file-10-35-160-29_neutron-pp-L38
[4] https://gist.github.com/imcsk8/9fed07d3417eb55790355b3a87301f8e#file-10-35-160-29_neutron-pp-L112
Comment 75 Ivan Chavero 2016-04-14 13:53:03 EDT
Fixed in the puppet neutron module, backporting to liberty
Comment 76 Ivan Chavero 2016-05-25 16:51:25 EDT
With the latest Openstack Puppet Modules for liberty this should work.
Comment 77 Lon Hohberger 2016-06-23 14:19:51 EDT
According to our records, this should be resolved by openstack-packstack-7.0.0-0.14.dev1702.g490e674.el7ost.  This build is available now.
Comment 78 Itzik Brown 2016-06-29 03:54:14 EDT
1) /etc/neutron/plugins/ml2/ml2_conf_sriov.ini is updated but not read by the Neutron server. When linking it to /etc/neutron/conf.d/neutron-server/ml2_conf_sriov.conf it's ok

2) When having the following ones
CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS=15b3:1004,8086:10c9,8086:10ca,8086:1520,8086:10ed it works but seems like the default is wrong.
Comment 79 Sanjay Upadhyay 2016-06-29 04:14:44 EDT
For 1: there is already a patch https://review.openstack.org/333882
Comment 80 Ivan Chavero 2016-07-05 02:40:44 EDT
This bug has been fixed on the packstack side.
The remaining problem belongs in OPM
Comment 83 Toni Freger 2017-01-25 02:43:53 EST
Checked on openstack-packstack-7.0.0-0.19.dev1702.g490e674.el7ost.noarch

SR-IOV configuration have added to answer file.

# Comma-separated ordered list of networking mechanism driver entry
# points to be loaded from the neutron.ml2.mechanism_drivers
# namespace. ['logger', 'test', 'linuxbridge', 'openvswitch',
# 'hyperv', 'ncs', 'arista', 'cisco_nexus', 'mlnx', 'l2population',
# 'sriovnicswitch']
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch

# Comma separated list of supported PCI vendor devices defined by
# vendor_id:product_id according to the PCI ID Repository.
CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS=['15b3:1004', '8086:10ca']

# Specify 'y' if the sriov agent is required
CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=n

# Comma-separated list of interface mappings for the OpenStack
# Networking ML2 SRIOV agent. Each tuple in the list must be in the
# format <physical_network>:<net_interface>. Example:
# physnet1:eth1,physnet2:eth2,physnet3:eth3.
CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=

Note You need to log in before you can comment on or make changes to this bug.