OpenStack Networking (Neutron)
Go to file
Rodolfo Alonso Hernandez 50ffa5173d [OVS] Handle added/removed ports in the same polling iteration
The OVS agent processes the port events in a polling loop. It could
happen (and more frequently in a loaded OVS agent) that the "removed"
and "added" events can happen in the same polling iteration. Because
of this, the same port is detected as "removed" and "added".

When the virtual machine is restarted, the port event sequence is
"removed" and then "added". When both events are captured in the same
iteration, the port is already present in the bridge and the port is
discharted from the "removed" list.

Because the port was removed first and the added, the QoS policies do
not apply anymore (QoS and Queue registers, OF rules). If the QoS
policy does not change, the QoS agent driver will detect it and won't
call the QoS driver methods (based on the OVS agent QoS cache, storing
port and QoS rules). This will lead to an unconfigured port.

This patch solves this issue by detecting this double event and
registering it as "removed_and_added". When the "added" port is
handled, the QoS deletion method is called first (if needed) to remove
the unneded artifacts (OVS registers, OF rules) and remove the QoS
cache (port/QoS policy). Then the QoS policy is applied again on the
port.

NOTE: this is going to be quite difficult to be tested in a fullstack test.

Change-Id: I51eef168fa8c18a3e4cee57c9ff86046ea9203fd
Closes-Bug: #1845161
2019-12-05 17:39:55 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Use os-xenapi for neutron when XenServer as hypervisor 2017-03-30 18:33:37 +00:00
devstack Merge "Fix designate driver not being fully region aware" 2019-10-03 23:51:35 +00:00
doc Merge "Remove grenade-py3 job from Neutron CI" 2019-12-04 19:56:30 +00:00
etc Set rootwrap daemon timeout for fullstack and functional tests 2019-10-31 11:42:47 +00:00
neutron [OVS] Handle added/removed ports in the same polling iteration 2019-12-05 17:39:55 +00:00
playbooks Rehome networking-ovn CI jobs to neutron repository 2019-11-27 10:38:04 +01:00
rally-jobs Rally task definition for port binding scenario 2019-07-08 13:25:46 +02:00
releasenotes Merge "Dont schedule Network, respecting network_auto_schedule config" 2019-11-27 06:05:14 +00:00
roles Fix log directory permissions for functional job 2019-08-03 12:06:32 +00:00
tools Update comments messages in abandon_old_reviews script 2019-12-04 10:38:14 +01:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Removing existing dirs from .gitignore 2019-05-31 13:35:30 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:38:27 +00:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Fix pylint R1717 (consider-using-dict-comprehension) refactor messages 2019-03-14 23:19:58 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
.zuul.yaml Remove grenade-py3 job from Neutron CI 2019-11-29 15:55:17 +01:00
CONTRIBUTING.rst Update link for contribution 2017-08-31 16:44:51 +02:00
HACKING.rst Update the documentation link for doc migration 2017-07-22 18:46:13 +09: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 Stop testing python 2 2019-10-25 18:50:08 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
bindep.txt Merge "Stop testing python 2" 2019-10-28 00:52:16 +00:00
lower-constraints.txt [OVN] Sync requirements with OVN 2019-11-27 12:23:56 +00:00
requirements.txt [OVN] Sync requirements with OVN 2019-11-27 12:23:56 +00:00
setup.cfg Stop testing python 2 2019-10-25 18:50:08 +00:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Use openstacksdk for ironic notifiers 2019-09-19 06:56:24 +00:00
tox.ini Set ignore_basepython_conflict to true in tox.ini 2019-11-28 12:47:19 +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.