summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodolfo Alonso Hernandez <ralonsoh@redhat.com>2023-03-29 20:41:33 +0200
committerRodolfo Alonso <ralonsoh@redhat.com>2023-05-09 11:06:24 +0000
commit3e65ef863cc4913fd6414e4010ec2506632c00b9 (patch)
treee5a32718aa7a8f565a4b03f4844a1127df8b1c23
parent0b954831060089588fb17367c0c1553d6b230d67 (diff)
downloadneutron-3e65ef863cc4913fd6414e4010ec2506632c00b9.tar.gz
Mark "ipv6_pd_enabled" as deprecated and experimental.
This functionality will be kept in the code as experimental as long as no bugs are reported againts this feature. This patch also marks the config option "ipv6_pd_enabled" as experimental. In order to enable this flag, it is needed to configure the "experimental.ipv6_pd_enabled" flag too. Related-Bug: #1916428 Change-Id: I27aeed74f308d5bdf0210e76d9557f95b66c71bf
-rw-r--r--neutron/conf/common.py7
-rw-r--r--neutron/conf/experimental.py5
-rw-r--r--neutron/db/db_base_plugin_v2.py12
-rw-r--r--releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml7
4 files changed, 30 insertions, 1 deletions
diff --git a/neutron/conf/common.py b/neutron/conf/common.py
index c820b3c5d7..30b09a14aa 100644
--- a/neutron/conf/common.py
+++ b/neutron/conf/common.py
@@ -77,7 +77,12 @@ core_opts = [
"without providing a CIDR or subnetpool ID will be "
"given a CIDR via the Prefix Delegation mechanism. "
"Note that enabling PD will override the behavior of "
- "the default IPv6 subnetpool.")),
+ "the default IPv6 subnetpool."),
+ deprecated_for_removal=True,
+ deprecated_since='2023.2',
+ deprecated_reason=("The Dibbler client used for this feature "
+ "is no longer maintained. See LP#1916428"),
+ ),
cfg.IntOpt('dhcp_lease_duration', default=86400,
help=_("DHCP lease duration (in seconds). Use -1 to tell "
"dnsmasq to use infinite lease times.")),
diff --git a/neutron/conf/experimental.py b/neutron/conf/experimental.py
index 463ab4a88b..dbb13ec820 100644
--- a/neutron/conf/experimental.py
+++ b/neutron/conf/experimental.py
@@ -17,11 +17,16 @@ from neutron._i18n import _
EXPERIMENTAL_CFG_GROUP = 'experimental'
EXPERIMENTAL_LINUXBRIDGE = 'linuxbridge'
+EXPERIMENTAL_IPV6_PD = 'ipv6_pd_enabled'
experimental_opts = [
cfg.BoolOpt(EXPERIMENTAL_LINUXBRIDGE,
default=False,
help=_('Enable execution of the experimental Linuxbridge '
'agent.')),
+ cfg.BoolOpt(EXPERIMENTAL_IPV6_PD,
+ default=False,
+ help=_('Enable execution of the experimental IPv6 Prefix '
+ 'Delegation functionality in the L3 agent.')),
]
diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py
index d80e7b3fc7..95a7d2277e 100644
--- a/neutron/db/db_base_plugin_v2.py
+++ b/neutron/db/db_base_plugin_v2.py
@@ -51,8 +51,10 @@ from sqlalchemy import not_
from neutron._i18n import _
from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api
from neutron.common import _constants
+from neutron.common import experimental
from neutron.common import ipv6_utils
from neutron.common import utils
+from neutron.conf import experimental as c_exp
from neutron.db import db_base_plugin_common
from neutron.db import ipam_pluggable_backend
from neutron.db import models_v2
@@ -156,7 +158,17 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
result_filters=None)
return super(NeutronDbPluginV2, cls).__new__(cls, *args, **kwargs)
+ @staticmethod
+ def _validate_ipv6_pd():
+ try:
+ if cfg.CONF.ipv6_pd_enabled:
+ experimental.validate_experimental_enabled(
+ c_exp.EXPERIMENTAL_IPV6_PD)
+ except cfg.NoSuchOptError:
+ return
+
def __init__(self):
+ self._validate_ipv6_pd()
self.set_ipam_backend()
if (cfg.CONF.notify_nova_on_port_status_changes or
cfg.CONF.notify_nova_on_port_data_changes):
diff --git a/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml b/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml
new file mode 100644
index 0000000000..b340343261
--- /dev/null
+++ b/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml
@@ -0,0 +1,7 @@
+---
+deprecations:
+ - |
+ "ipv6_pd_enabled" has been marked as deprecated and marked as experimental.
+ To continue using it, deployers have to set to True the "ipv6_pd_enabled"
+ option in the "experimental" section of neutron.conf. See
+ `Dibbler project concluded <https://bugs.launchpad.net/neutron/+bug/1916428>`_.