neutron/neutron/services
Kailun Qin a01b7125cd Use network segment ranges for segment allocation
This patch makes necessary changes to ML2 type drivers and plugin
manager for network segment range extension support when it is loaded.

When the network segment range extension is not loaded, no impact to the
current flow.

When the extension is loaded,
- populating a range that is managed from the configuration file [1]_,
  such as "VLAN IDs", "VXLAN VNI IDs", "GRE tunnel IDs",
  "Geneve VNI IDs" to the network segment range DB table as a "default"
  and "shared" entry to maintain backward compatibility;
- reloading the "default" segment ranges when Neutron server
  starts/restarts;
- creating a set of "default" network segment ranges out of the
  ML2-config-file-defined ranges [1]_ and the segment allocation
  operations are always retrieving the information from the DB to have
  the network segment ranges fully administered via API;
- when a tenant allocates a segment, it will first allocate from an
  available segment range assigned to the tenant, and then a shared
  range if no tenant specific allocation is possible.

[1] /etc/neutron/plugins/ml2/ml2_conf.ini

Co-authored-by: Allain Legacy <Allain.legacy@windriver.com>

Partially-implements: blueprint network-segment-range-management
Change-Id: I522940fc4d054f5eec1110eb2c424e32e8ae6bad
2019-03-09 22:04:20 +00:00
..
auto_allocate remove neutron.common.exceptions 2019-02-01 14:35:00 -07:00
externaldns Fix all pep8 E129 errors 2018-05-03 13:44:04 +09:00
flavors Implement filter validation 2018-07-19 04:13:43 +00:00
l3_router use api def ALIAS in _supported_extension_aliases 2019-02-15 11:26:28 -07:00
logapi remove neutron.common.rpc 2019-02-06 11:05:55 -07:00
loki use sqla functions from neutron-lib 2018-07-25 21:04:20 +00:00
metering Merge "Change Metering agent to log message after failure" 2019-02-07 20:12:48 +00:00
network_ip_availability Implement filter validation 2018-07-19 04:13:43 +00:00
network_segment_range Use network segment ranges for segment allocation 2019-03-09 22:04:20 +00:00
placement_report Placement reporting service plugin 2019-03-01 15:37:48 +01:00
portforwarding Add dependency for service plugin 2019-02-16 00:17:53 +08:00
qos Use constant from neutron-lib 2019-02-25 15:47:10 +01:00
rbac Neutron RBAC API and network support 2015-08-20 20:00:17 -07:00
revisions Merge "Fix _find_related_obj() RuntimeError output" 2019-03-02 06:41:04 +00:00
segments use payloads for SEGMENT AFTER_DELETE events 2019-01-08 10:45:12 -07:00
tag remove the neutron.db._model_query module 2019-01-25 08:55:25 -07:00
timestamp remove the neutron.db._model_query module 2019-01-25 08:55:25 -07:00
trunk Merge "Retrieve the device info in trunk_plumber using pyroute2" 2019-02-22 03:16:49 +00:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
provider_configuration.py Merge "Select service_provider on the basis of service_module" 2018-11-15 12:47:09 +00:00
service_base.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00