neutron/neutron
Maciej Józefczyk 8f1912a1d1 [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
   neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.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:53:37 +00:00
..
agent Merge "Workaround for TCP checksum issue with ovs-dpdk and veth pair" into stable/train 2020-07-01 03:10:18 +00:00
api Adding LOG statements to debug 1838449 2020-05-08 09:37:37 +02:00
cmd Use pyroute2 for SRIOV VF commands 2020-06-03 11:05:20 +00:00
common Auto-delete dhcp ports on segment delete 2020-07-13 12:43:04 +02:00
conf Add config option ``http_retries`` 2020-07-09 10:11:43 +00:00
core_extensions Switch to new engine facade for QoS 2019-05-28 08:11:35 +00:00
db [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:53:37 +00:00
debug Remove deprecated 'external_network_bridge' option 2019-03-09 22:07:38 +00:00
extensions Conntrack Helper - Plugin 2019-08-29 10:41:04 +02:00
hacking Remove Neutron LBaaS 2019-09-20 07:46:06 +00:00
ipam Allow first address in an IPv6 subnet as valid unicast 2019-05-21 16:31:18 +00:00
locale Imported Translations from Zanata 2019-11-22 07:43:34 +00:00
notifiers Add config option ``http_retries`` 2020-07-09 10:11:43 +00:00
objects [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:53:37 +00:00
pecan_wsgi Set DB retry for quota_enforcement pecan_wsgi hook 2019-11-24 09:55:14 +00:00
plugins Merge "Auto-delete dhcp ports on segment delete" into stable/train 2020-07-15 17:24:25 +00:00
privileged Use pyroute2 for SRIOV VF commands 2020-06-03 11:05:20 +00:00
quota Set DB retry for quota_enforcement pecan_wsgi hook 2019-11-24 09:55:14 +00:00
scheduler Start enforcing E125 flake8 directive 2019-07-19 23:39:41 -04:00
server Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-19 07:58:41 +00:00
services Optionally use admin powers when deleting DNS records 2020-07-13 11:31:50 +00:00
tests [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:53:37 +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 Define dhcp_agents_per_network with min=1 2019-05-15 14:08:21 -04: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 Conntrack Helper - Plugin 2019-08-29 10:41:04 +02:00
policy.py List SG rules which belongs to tenant's SG 2019-12-04 20:44:05 +00:00
service.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-19 07:58:41 +00: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-19 07:58:41 +00:00