OpenStack Networking (Neutron)
Go to file
Terry Wilson da3ce73198 Add support for deleting ml2/ovn agents
This adds support for deleting OVN controller/metadata agents.
Behavior is undefined if the agents are still actually up as per
the Agent API docs.

As part of this, it is necessary to be able to tell all workers
that the agent is gone. This can't be done by deleting the
Chassis, because ovn-controller deletes the Chassis if it is
stopped gracefully and we need to still display those agents as
down until ovn-controller is restarted. This also means we can't
write a value to the Chassis marking the agent as 'deleted'
because the Chassis may not be there. And of course you can't
use the cache because then other workers won't see that the
agent is deleted.

Due to the hash ring implementation, we also cannot naively just
send some pre-defined event that all workers can listen for to
update their status of the agent. Only one worker would process
the event. So we need some kind of GLOBAL event type that is
processed by all workers.

When the hash ring implementation was done, the agent API
implementation was redesigned to work around moving from having
a single OVN Worker to having distributed events. That
implementation relied on marking the agents 'alive' in the
OVSDB. With large numbers of Chassis entries, this induces
significant load, with 2 DB writes per Chassis per
cfg.CONF.agent_down_time / 2 seconds (37 by default).

This patch reverts that change and goes back to using events
to store agent information in the cache, but adds support for
"GLOBAL" events that are run on each worker that uses a particular
connection.

Change-Id: I4581848ad3e176fa576f80a752f2f062c974c2d1
2021-01-12 15:06:12 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
devstack Merge "Update octavia plugin code" 2020-12-11 05:02:41 +00:00
doc Merge "[Docs] Guide about running and debugging tempest tests" 2021-01-08 10:35:46 +00:00
etc Ensure XenAPI options are loaded 2021-01-03 20:53:01 +09:00
neutron Add support for deleting ml2/ovn agents 2021-01-12 15:06:12 +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 Add support for deleting ml2/ovn agents 2021-01-12 15:06:12 +00:00
roles [OVN] Use the OVN DevStack module 2020-08-26 10:09:28 +01:00
tools [OVN] Updates to tools/migrate_names.txt 2020-12-14 16:44:40 -05:00
vagrant/ovn Fix local neutron folder path in ovn/sparse/Vagrantfile 2020-11-03 17:02:34 +01:00
zuul.d Merge "Temporary blacklist test_reboot_server_hard in OVN IPv6 job" 2020-12-15 19:43:46 +00: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 OpenDev Migration Patch 2019-04-19 19:38:27 +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
bindep.txt include python36-devel in bindep, for tests 2020-10-03 21:58:20 +10: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
lower-constraints.txt Avoid race condition when processing RowEvents 2021-01-10 05:13:34 +00:00
plugin.spec Add OSP16.1 choice to migration plugin spec 2020-05-04 20:34:16 +03:00
README.rst Start README.rst with a better title 2019-11-19 17:42:57 +01:00
requirements.txt Avoid race condition when processing RowEvents 2021-01-10 05:13:34 +00:00
setup.cfg Add port NUMA affinity policy 2020-11-13 15:49:34 +00:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Move linters dependencies to tox.ini 2020-12-17 11:32:03 +01:00
TESTING.rst [Docs] Guide about running and debugging tempest tests 2021-01-07 21:36:42 +01:00
tox.ini Move linters dependencies to tox.ini 2020-12-17 11:32:03 +01:00

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.