Since external network update or new subnet created on external
network, the related L3 routers have to do some update actions.
In order to make the L3 stuff limited to L3 code room only,
this patch move these code logical to L3 DB.
Change-Id: I9aefc5f8b68bc6c48cb07c87aba9c40e536afb55
If create subnet for existing external network, check the service_type
to skip all exsiting router gateway ports updating. And this check is
added only for L3RouterPlugin.
IPv6 subnet creation for external network will keep the current behavior.
IPv6 subnet has not 'floatingip' types. And IPv6 subnet should be created
once enough, because a /64 CIDR is large enough typically. Creating IPv6
subnets many times does not occur frequently. So make IPv6 run as it is.
Closes-Bug: #2043761
Change-Id: Ica03d091572025fd6938ad1fdf4b13854625f267
In [1], a method to process the DHCP events in the correct order was
implemented. That method checks the port events in order to match
the "fixed_ips" field. That implies the Neutron server provides this
information in the port event, sent via RPC.
However in [2], the "fixed_ips" information was removed from the
``DhcpAgentNotifyAPI._after_router_interface_deleted``, causing a
periodic error in the ``DHCPResourceUpdate.__lt__`` method, as reported
in the LP bug. This patch is restoring this field in the RPC message.
[1]https://review.opendev.org/c/openstack/neutron/+/773160
[2]https://review.opendev.org/c/openstack/neutron/+/639814
Closes-Bug: #2071426
Change-Id: If1362b9b91794e74e8cf6bb233e661fba9fb3b26
The test_l2_agent_restart test was failing due to the agents not
restarting within the timeout of 30s. This is fixed by:
* Use `systemctl restart` to restart the service instead of killing
and creating a new transient service.
* Don't block on `systemctl` calls to allow parallel service
operations. Previously this was serialized in the rootwrap daemon
which lead to delays.
* Use `KillMode=mixed` to first only kill the main process and give it
25s to cleanly shutdown all other processes. After this timeout all
processes are killed. Previously systemd sent a SIGTERM to all
processes which caused unclean shutdowns of some neutron agents which
expected to shutdown their child processes themselves.
Change-Id: Ic752e36e6fe6ba9b1fc9e7296204c086c465d76f
Closes-Bug: #2070390
When using the Neutron WSGI module, the plugin services (periodic
workers created on demand in the ML2 plugin initialization) were not
spawned.
This patch adds a new service that should be spawned within the Neutron
API processes, similar to the RPC server.
Closes-Bug: #2069581
Change-Id: Ia5376a68bfbcff4156800f550f28b59944b863c3
It's seen that these tests interfered(removed router namespace) with
test_metadata_proxy_rate_limiting_ipv6 but can interfere with others
too, let's run these serially to avoid random failures.
Following tests will run serially now:-
- test_periodic_sync_routers_task
- test_periodic_sync_routers_task_routers_deleted_while_agent_down
- test_periodic_sync_routers_task_routers_deleted_while_agent_sync
Closes-Bug: #2069744
Change-Id: I34598cb9ad39c96f5e46d98af1185992c5eb3446
This patch ensures that the "classless-static-route" is wrapped in {} as
expected by OVN and also merges the default routes with the user
inputted ones so everything works as expected.
Closes-Bug: #2069625
Change-Id: I302a872161c55df447a05b31d99c702537502a2f
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
The patch [1] defines the RpcWorker and RpcReportsWorker processes
names. However, the parent class ``neutron_lib.worker.BaseWorker``
init method is not reading the class variable defined in [1]. This
patch is explictly passing the ``desc`` class name in the init method.
[1]https://review.opendev.org/c/openstack/neutron/+/907712
Closes-Bug: #2069581
Change-Id: I50c2b0567ea10316ad06e6e6c1d01db8b9520e3e
The current comparison strategy is very time-consuming, and if
there are hundreds of thousands of security group rules, the
comparison time can still vary from several hours. The main
time-consuming operations are [1].
This patch is sorted first by security group rule ID and then
compared. The execution of sorting actions is relatively fast.
After actual measurement, the total time consumption is in the
minute level.
Partial-Bug: #2023130
[1] b86ca713f7/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py (L285-L291)
Change-Id: If4c886d928258450aac31e12a4e26e0cbe2ace62
This allows deployment tooling to easily switch from passing a binary
path to passing a Python module path. We'll use it shortly.
Change-Id: I5350dff6be0daf1d4e5e5dfa4aab745b765436f7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We want this module for use elsewhere. This has a natural home in the
neutron.api module so move it there. This is similar to what has
previously been done for nova [1].
Tests for the module are also moved and other tests slightly decoupled.
[1] https://review.opendev.org/c/openstack/nova/+/902686
Change-Id: I835e7ad95b6d7d83d06f4303b476519c16b9a2c8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
As was agreed on the CI meeting [1], this patch moves
neutron-ovn-grenade-multinode job from the experimental queue to the
check and gate queues.
Now in check/gate there are 2 grenade jobs: one ovs-multinode job and
one ovn-multinode job.
To not increase number of jobs in the check/gate, this patch also moves
neutron-ovs-grenade-dvr-multinode job to the periodic (and experimental)
queue.
[1] https://meetings.opendev.org/meetings/neutron_ci/2024/neutron_ci.2024-06-11-15.02.log.html#l-18
Change-Id: I22d0f9a59bca6f412dcf30005678229a859d5e4c
This reverts commit 85d3fff97e55ba85f72cda4365ad0441c10bd9f6.
Reason for revert:
The original change was made as a “cheap win” to optimize the number
of queries the neutron server makes during testing. This did
improve the number of queries made but introduced regression in
real world deployments where some customers(through automation)
would define hundreds of tags per port across a large deployment.
I am proposing to revert this change in favor of the old “subquery”
relation in order to fix this regression. In addition, I filed the
Related-Bug #2069061 to investigate using `selectin` as the more
appropriate long term solution.
Change-Id: I83ec349e49e1f343da8996cab149d76443120873
Closes-Bug: #2068761
Related-Bug: #2069061
This patch adds bump revision after updating the hostname
of a virtual port (more specifically its associated port).
This way there is no misalignment between the revision number
of Neutron DB and OVN DB.
It also avoids the unnecessary execution of the maintenance
task to simply match the revision_number.
Closes-Bug: #2069046
Change-Id: I2734984f10341ab97ebbdee11389d214bb1150f3
This commit addresses an issue with the DHCP cleaning stale devices
getting called at the end of enable action.
The cleanup_stale_devices function is invoked to remove stale devices
within the namespace. The method cleanup_stale_devices examines the
ports in the network to prevent the unintentional removal of
legitimate devices.
In a multisegment context, the initial device created might be deleted
during the second iteration. This occurs because the network variable
used in the loop is not a singular reference to the same object,
resulting in its ports not being updated by the ones created during
previous iterations.
Closes-Bug: #2051729
Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>
Change-Id: I3042df1e2f86070dbc575e7f3b4e3334f037141d
Will allow neutron to start using 'selectin' DB load
strategy and addresses some issues with netaddr library
related code.
Depends-on: https://review.opendev.org/c/openstack/requirements/+/921518
Change-Id: I1f4c3af87a2c997dbfb003e2d276df20fdf1d0d5
Creation of agents is not really supported and returns BadRequest
exception when called but without default policy for that call
oslo_policy module was using default rule for it and that default one is
'admin_or_owner' which is not correct in case of agent resource as it
don't belongs to any tenant so don't have owner.
Additionally it seems that BadRequest exception raised by the
create_agent method was missing resource and msg parameters so this
patch added them too.
Related-Bug: #2022043
Change-Id: I3beb3f2ee2f4717b80c5422a2d3db8e93d322a1c
This change fixes a race condition between deleting a subport in the
trunk plugin and the actual deletion in the OVN NBDB.
Change-Id: I836d47a1879d474c2171905416a2838cfe3bab5a
Closes-Bug: #2067400
Commit 260c968118934 broke the gate by causing jobs
to not get run when it added RE2 compatibility for
irrelevant-files. Digging found that RE2 doesn't
support negative lookahead (and won't ever), so it's
impossible to replace the previous pcre filter with a
similar RE2 filter.
Instead of reverting to the original filter, which
is considered obsolete by zuul, this patch fixes the
issue by explicitly listing all files under zuul.d/
except the one that we actually want to trigger the
jobs: zuul.d/project.yaml.
Listing all the files in the directory for every job
is not ideal, and we may revisit it later, or perhaps
even reconsider the extensive use of irrelevant-files
in the neutron tree. This will have to wait for when
the gate is in better shape though.
[0] https://github.com/google/re2/issues/156
Related-bug: #2065821
Change-Id: I3bba89ac14414c6b7d375072ae92d2e0b5497736