Bug 2103019

Summary: Neutron fails to report updates to placement
Product: Red Hat OpenStack Reporter: Eduardo Olivares <eolivare>
Component: openstack-neutronAssignee: Rodolfo Alonso <ralonsoh>
Status: CLOSED ERRATA QA Contact: Fiorella Yanac <fyanac>
Severity: urgent Docs Contact:
Priority: high    
Version: 17.0 (Wallaby)CC: chrisw, egarciar, jschluet, ralonsoh, scohen
Target Milestone: betaKeywords: AutomationBlocker, Regression, Triaged
Target Release: 17.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-18.4.1-0.20220705190433.5258354.el9ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-09-21 12:23:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2101409    

Description Eduardo Olivares 2022-07-01 08:15:48 UTC
Description of problem:
OSP17 environment with OVN+SRIOV configured

sriov_agent.ini includes the following minimum BW configuration that should be reported to placement:
[sriov_nic]                                                                                                                                                                                                                                   
physical_device_mappings=datacentre:enp7s0f3,datacentre:enp5s0f0
resource_provider_bandwidths=enp7s0f3:10000000:10000000,enp5s0f0:10000000:10000000
resource_provider_hypervisors=enp7s0f3:computesriov-0.localdomain,enp5s0f0:computesriov-0.localdomain                                                                                                                                         

placement section is correctly configured on neutron.conf:
[placement]
auth_url=http://10.20.1.65:5000
username=nova
password=D6BO88QBbKbEYI76XkNzX5W68
project_domain_name=Default
project_name=service
user_domain_name=Default
region_name=regionOne
auth_type=password


When the sriov-agent running in a compute node is restarted, it successfully generates the information that should be reported to placement:
2022-07-01 08:03:13.803 526516 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [-] Physical Devices mappings: {'datacentre': ['enp7s0f3', 'enp5s0f0']}
2022-07-01 08:03:13.804 526516 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [-] Exclude Devices: {}
2022-07-01 08:03:13.804 526516 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [-] Resource provider bandwidths: {'enp7s0f3': {'egress': 10000000, 'ingress': 10000000}, 'enp5s0f0': {'egress': 10000000, 'ingress': 1000000
0}}
2022-07-01 08:03:13.804 526516 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [-] Resource provider inventory defaults: {'allocation_ratio': 1.0, 'min_unit': 1, 'step_size': 1, 'reserved': 0}
2022-07-01 08:03:13.804 526516 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [-] Resource provider hypervisors: {'enp7s0f3': 'computesriov-0.localdomain', 'enp5s0f0': 'computesriov-0.localdomain'}
2022-07-01 08:03:13.805 526516 DEBUG neutron.plugins.ml2.drivers.mech_sriov.agent.eswitch_manager [-] Number of VFs configured on device enp7s0f3: 5 get_numvfs /usr/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/mech_sriov/agent/
eswitch_manager.py:133
2022-07-01 08:03:13.805 526516 DEBUG neutron.plugins.ml2.drivers.mech_sriov.agent.eswitch_manager [-] Number of VFs configured on device enp5s0f0: 5 get_numvfs /usr/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/mech_sriov/agent/
eswitch_manager.py:133


However, the neutron server is unable to send those data to placement:
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager [req-f40ac07f-9e01-480d-b4a3-11cd63ade5f1 - - - - -] Error during notification for neutron.services.placement_report.plugin.PlacementReportPlugin.handle_placement_config-1384518 agent, after_update: AttributeError: 'OVNMechanismDriver' object has no attribute 'agent_type'
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager Traceback (most recent call last):
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3.9/site-packages/neutron_lib/callbacks/manager.py", line 197, in _notify_loop
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager     callback(resource, event, trigger, **kwargs)
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3.9/site-packages/neutron/services/placement_report/plugin.py", line 204, in handle_placement_config
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager     if agent['agent_type'] not in self._agents.supported_agent_types:
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3.9/site-packages/neutron/services/placement_report/plugin.py", line 264, in supported_agent_types
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager     self._supported_agent_types = [
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3.9/site-packages/neutron/services/placement_report/plugin.py", line 265, in <listcomp>
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager     driver.obj.agent_type
2022-07-01 08:03:13.967 20 ERROR neutron_lib.callbacks.manager AttributeError: 'OVNMechanismDriver' object has no attribute 'agent_type'



This didn't fail in OSP16.2, so this bug is a regression.



Version-Release number of selected component (if applicable):
RHOS-17.0-RHEL-9-20220628.n.1

How reproducible:
100%

Steps to Reproduce:
1. use the configuration described above, restart an sriov agent and check the neutron server logs
2. alternatively, run this downstream job: https://rhos-ci-jenkins.lab.eng.tlv2.redhat.com/job/DFG-network-networking-ovn-17.0_director-rhel-virthost-3cont_2comp-ipv4-vlan-sriov/
3.

Actual results:
$ openstack --os-placement-api-version 1.17  resource provider list
+--------------------------------------+----------------------------+------------+--------------------------------------+----------------------+
| uuid                                 | name                       | generation | root_provider_uuid                   | parent_provider_uuid |
+--------------------------------------+----------------------------+------------+--------------------------------------+----------------------+
| 01db300f-19f4-4f44-828c-30fdbb844f34 | computesriov-1.localdomain |        326 | 01db300f-19f4-4f44-828c-30fdbb844f34 | None                 |
| 5ddc8a22-2a81-47b0-b5b4-d742de6dd6fa | computesriov-0.localdomain |        351 | 5ddc8a22-2a81-47b0-b5b4-d742de6dd6fa | None                 |
+--------------------------------------+----------------------------+------------+--------------------------------------+----------------------+


Expected results:
Something like this is expected (see documentation at https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.2/html-single/networking_guide/index#guaranteed-min-bw_config-qos-policies)
$ openstack --os-placement-api-version 1.17  resource provider list
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| uuid                                 | name                                                | generation | root_provider_uuid                   | parent_provider_uuid                 |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | dell-r730-014.localdomain                           |         28 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | None                                 |
| 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | dell-r730-063.localdomain                           |         18 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | None                                 |
| e2f5082a-c965-55db-acb3-8daf9857c721 | dell-r730-063.localdomain:NIC Switch agent          |          0 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 |
| d2fb0ef4-2f45-53a8-88be-113b3e64ba1b | dell-r730-014.localdomain:NIC Switch agent          |          0 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 |
| f1ca35e2-47ad-53a0-9058-390ade93b73e | dell-r730-063.localdomain:NIC Switch agent:enp6s0f1 |         13 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | e2f5082a-c965-55db-acb3-8daf9857c721 |
| e518d381-d590-5767-8f34-c20def34b252 | dell-r730-014.localdomain:NIC Switch agent:enp6s0f1 |         19 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | d2fb0ef4-2f45-53a8-88be-113b3e64ba1b |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Comment 14 errata-xmlrpc 2022-09-21 12:23:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.0 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:6543