neutron/neutron/objects
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
..
db remove the neutron.db._model_query module 2019-01-25 08:55:25 -07:00
extensions use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
logapi use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
plugins Fix queries to retrieve allocations with network_segment_range 2020-02-28 12:34:13 +00:00
port use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
qos Refactor OVN client QoS extension 2020-04-10 13:11:00 +00:00
README.rst Objects: Add README for neutron/objects directory tree 2016-10-07 15:12:20 +00:00
__init__.py Use dirname in object recursive import 2017-04-20 04:35:10 -07:00
address_scope.py Allow sharing of subnet pools via RBAC mechanism 2020-04-09 19:02:47 +03:00
agent.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
auto_allocate.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
base.py use object standardattributes from neutron-lib 2019-06-12 13:57:00 -06:00
conntrack_helper.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
flavor.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
floatingip.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
ipam.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
l3_hamode.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
l3agent.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
metering.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
network.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
network_segment_range.py Default (shared) network segment range is not mandatory 2020-04-07 19:29:28 +00:00
port_forwarding.py Add description field to portforwarding NAT rules 2020-01-22 11:19:55 -03:00
ports.py Auto-delete dhcp ports on segment delete 2020-07-13 12:40:18 +02:00
provisioning_blocks.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
quota.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
rbac.py Allow sharing of subnet pools via RBAC mechanism 2020-04-09 19:02:47 +03:00
rbac_db.py Allow sharing of subnet pools via RBAC mechanism 2020-04-09 19:02:47 +03:00
router.py Ensure there is always at most 1 dvr fip gw port per agent and network 2020-02-07 08:32:33 +00:00
securitygroup.py Merge "Support for stateless security groups" 2020-03-04 14:16:34 +00:00
servicetype.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00
stdattrs.py use object standardattributes from neutron-lib 2019-06-12 13:57:00 -06:00
subnet.py [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:49:18 +00:00
subnetpool.py Allow sharing of subnet pools via RBAC mechanism 2020-04-09 19:02:47 +03:00
tag.py Fix pep8 E128 warnings in non-test code 2019-03-12 21:22:33 +00:00
trunk.py use objects common_types from neutron-lib 2019-11-26 15:34:18 +01:00

README.rst

Neutron Objects

Directory

This directory is designed to contain all modules which have objects definitions shipped with core Neutron. The files and directories located inside of this directory should follow the guidelines below.

Structure

The Neutron objects tree should have the following structure:

  • The expected directory structure is flat, except for the ML2 plugins. All ML2 plugin objects should fall under the plugins subdirectory (i.e. plugins/ml2/gre_allocation).
  • Module names should use singular forms for nouns (network.py, not networks.py).