OpenStack Networking (Neutron)
Go to file
Bence Romsics d3be39433c Physical NIC RP should be child of agent RP
In the fix for #1853840 I made a mistake and since then we created
the physical NIC resource providers as a child of the hypervisor
resource provider instead of the agent resource provider. Here:

https://review.opendev.org/c/openstack/neutron/+/696600/3/neutron/agent/common/placement_report.py#159

This *did not* break the minimum bandwidth aware scheduling.
But still there are multiple problems:

1) If you created your physical NIC RPs before the fix for #1853840
   but upgraded to after the fix for #1853840, then resource syncs
   will throw an error in neutron-server at each physical NIC RP
   update. That pollutes the logs and wastes some resources since
   the prohibited update will be forever retried.

2) If you created your physical NIC RPs after the fix for #1853840
   then your physical NIC RPs have the wrong parent. Which again
   does not break minimum bandwidth aware scheduling. But it may pose
   problems for later features wanting to build on the originally
   planned RP tree structure.

3) Cleanup of decommissioned RPs is a bit different than expected.
   This cleanup was always left to the admin, so it only affects a
   manual process.

The proper RP structure was and should be the following:

The hypervisor RP(s) must be the root(s).
As a child of each hypervisor RP, there should be an agent RP.
The physical NIC RPs should be the children of the agent RPs.

Unfortunately at the moment the Placement API generically prohibits
update of the parent resource provider id in a PUT request:

https://docs.openstack.org/api-ref/placement/?expanded=update-resource-provider-detail#update-resource-provider

Therefore without a later Placement change we cannot fix the RPs
already created with the wrong parent. However we can fix the RPs
to be created later. We do that here. We also fix a bug in the unit
tests that allowed the wrong parent to pass unnoticed. Plus we
add an extra log message to direct the user seeing the pollution
in the logs to the proper bug report.

There may be a follow up patch later, because not all RP re-parenting
operations are problematic, therefore we are thinking of relaxing
this blanket prohibition in Placement. When Placement allows updates
to the parent id we can fix RPs already created with the wrong parent
too.

Change-Id: I7caa8827d22103600ca685a58294640fc831dbd9
Closes-Bug: #1921150
Co-Authored-By: "Balazs Gibizer" <balazs.gibizer@est.tech>
Related-Bug: #1853840
(cherry picked from commit 7f35e4e857)
2021-05-05 08:09:36 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
devstack [OVN] security group logging support (2 of 2) 2021-03-02 10:48:23 -05:00
doc Remove SRIOV attach limitation from the doc 2021-04-22 12:58:46 +00:00
etc Remove rootwrap execution (6) 2021-03-05 10:03:22 +00:00
neutron Physical NIC RP should be child of agent RP 2021-05-05 08:09:36 +00:00
playbooks Merge "Convert neutron-grenade-ovn job to be zuulv3" 2020-10-11 16:50:14 +00:00
rally-jobs [ci] Fix several rally task arguments 2020-05-06 14:56:27 +03:00
releasenotes Physical NIC RP should be child of agent RP 2021-05-05 08:09:36 +00:00
roles [OVN] Use the OVN DevStack module 2020-08-26 10:09:28 +01:00
tools Physical NIC RP should be child of agent RP 2021-05-05 08:09:36 +00:00
vagrant/ovn Fix local neutron folder path in ovn/sparse/Vagrantfile 2020-11-03 17:02:34 +01:00
zuul.d Switch to use neutron-tempest-plugin jobs for Wallaby branch 2021-04-07 08:43:07 +02:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Add etc/neutron/*.sample files to be ignored by git 2019-12-12 12:38:24 +01:00
.gitreview Update .gitreview for stable/wallaby 2021-03-26 15:26:38 +00:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Remove "six" library 2020-07-28 16:55:52 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
CONTRIBUTING.rst [Community goal] Add contributor and PTL guide 2020-03-03 04:43:26 +01:00
HACKING.rst Remove "six" library 2020-07-28 16:55:52 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Start README.rst with a better title 2019-11-19 17:42:57 +01:00
TESTING.rst [Docs] Guide about running and debugging tempest tests 2021-01-07 21:36:42 +01:00
bindep.txt include python36-devel in bindep, for tests 2020-10-03 21:58:20 +10:00
lower-constraints.txt Merge "Bump neutron-lib to 2.10.1" 2021-03-24 01:23:40 +00:00
plugin.spec Add OVN migration OSP 16.2 option 2021-01-24 17:18:55 +02:00
requirements.txt Merge "Bump neutron-lib to 2.10.1" 2021-03-24 01:23:40 +00:00
setup.cfg Add port device profile extension 2021-01-22 16:17:30 +00:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Follow-up: Move linters dependencies to tox.ini 2021-01-07 04:26:07 +09:00
tox.ini Group execution of SQL functional tests 2021-04-13 09:40:05 +00:00

README.rst

OpenStack Neutron

image

Neutron is an OpenStack project to provide "network connectivity as a service" between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova).

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute, please read the CONTRIBUTING.rst file.