neutron/neutron
Maciej Józefczyk ab32d7ae64 [OVN] Allow IP allocation with different segments for OVN service ports
OVN creates localport [1] for each network that has metadata
and allocate IP address from subnet within this network that has
DHCP enabled. The traffic from this port will never go outside
the chassis.

While using multiple segments with subnet linked to each segment
OVN needs to create an allocation of IP address for each of those
subnets [2] in order to generate data for OVN NBDB IPv4 DHCP Options.

The change [3] started to validate that condition, while multiple
IP addresses from different segments are tried to be allocated on
one port. We can skip this for OVN Metadata port, because there
is no reason to prevent those kind of allocation for OVN.

For stable branches we decide if a port is distributed or not
by looking for DEVICE_OWNER_DHCP device owner  and `ovn` device_id,
instead DEVICE_OWNER_DISTRIBUTED device owner.

Conflicts:
   neutron/db/ipam_backend_mixin.py
   neutron/tests/unit/db/test_ipam_pluggable_backend.py

[1] http://www.openvswitch.org/support/dist-docs/ovn-architecture.7.html
[2] 5f42488a9a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py (L2279)
[3] https://review.opendev.org/#/c/709444/

Change-Id: Ib51cde89ed873f48db4daebc27a0980da9cc0f19
Closes-Bug: 1871608
(cherry picked from commit 8d1512afb0)
2020-07-27 11:49:18 +00:00
..
agent Workaround for TCP checksum issue with ovs-dpdk and veth pair 2020-06-29 17:34:39 +00:00
api [Security] fix allowed-address-pair 0.0.0.0/0 issue 2020-03-21 17:54:34 +08:00
cmd Use pyroute2 for SRIOV VF commands 2020-06-26 06:09:48 +00:00
common Merge "Auto-delete dhcp ports on segment delete" into stable/ussuri 2020-07-16 04:54:21 +00:00
conf Add config option ``http_retries`` 2020-07-09 10:11:22 +00:00
core_extensions Add "qos_network_policy_id" to port definition 2020-01-17 17:57:11 +00:00
db [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:49:18 +00:00
debug Fix neutron debug probe to use integration_bridge 2020-03-31 11:17:47 +00:00
extensions Merge "Allow sharing of subnet pools via RBAC mechanism" 2020-04-12 17:20:24 +00:00
hacking Allow usage of assert_called_once method in unit tests 2020-03-02 14:17:26 +02:00
ipam IPv6 accepts first address only for routers 2020-01-12 20:39:07 +00:00
locale Imported Translations from Zanata 2020-04-26 07:31:19 +00:00
notifiers Add config option ``http_retries`` 2020-07-09 10:11:22 +00:00
objects [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:49:18 +00:00
pecan_wsgi Set DB retry for quota_enforcement pecan_wsgi hook 2019-11-08 15:34:17 +04:00
plugins Merge "[OVN] Fix logic issue while deleting port with QoS" into stable/ussuri 2020-07-24 04:20:08 +00:00
privileged Use pyroute2 for SRIOV VF commands 2020-06-26 06:09:48 +00:00
profiling Add profiler decorator to Neutron 2019-10-31 10:05:01 -05:00
quota Set DB retry for quota_enforcement pecan_wsgi hook 2019-11-08 15:34:17 +04:00
scheduler L3 agent scheduler should return a valid index if manual scheduling 2020-06-26 09:59:27 +00:00
server Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-07 14:51:06 +01:00
services Merge "Optionally use admin powers when deleting DNS records" into stable/ussuri 2020-07-16 12:59:24 +00:00
tests [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:49:18 +00:00
__init__.py Fix incorrect usage of '# flake8: noqa' 2018-10-29 15:27:50 -04:00
_i18n.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
auth.py Use oslo.context class method to construct context object 2017-03-23 09:02:46 +00:00
manager.py Support L3 agent cleanup on shutdown 2019-12-16 17:01:31 -05:00
neutron_plugin_base_v2.py Do not load default service plugins if core plugin is not DB based 2017-11-09 20:34:52 +00:00
opts.py No rpc_response_max_timeout in LB-agent 2020-06-22 05:50:44 +00:00
policy.py List SG rules which belongs to tenant's SG 2019-11-27 15:45:09 +01:00
service.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-07 14:51:06 +01:00
version.py
worker.py Change process name of neutron-server to match worker role 2019-03-01 14:18:09 -05:00
wsgi.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-07 14:51:06 +01:00