From ecc2cef534ec82061a9029376d8cc0c97b6359d3 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Wed, 30 Jul 2025 21:24:38 +0900 Subject: [PATCH] Add support for [ovn] stateless_nat_enabled ... which was added during this cycle to support stateless NAT rules. Depends-on: https://review.opendev.org/951511 Change-Id: I399d5b55fa63d16d3c6e0810855ce98e45691568 Signed-off-by: Takashi Kajinami --- manifests/plugins/ml2/ovn.pp | 6 ++++++ .../notes/ovn-stateless_nat_enabled-7762c1f68f144c14.yaml | 5 +++++ spec/classes/neutron_plugins_ml2_ovn_spec.rb | 4 ++++ 3 files changed, 15 insertions(+) create mode 100644 releasenotes/notes/ovn-stateless_nat_enabled-7762c1f68f144c14.yaml diff --git a/manifests/plugins/ml2/ovn.pp b/manifests/plugins/ml2/ovn.pp index e5cc81e4c..82ef3884d 100644 --- a/manifests/plugins/ml2/ovn.pp +++ b/manifests/plugins/ml2/ovn.pp @@ -151,6 +151,10 @@ # (optional) Activation strategy to use for live migration. # Defaults to $facts['os_service_default'] # +# [*stateless_nat_enabled*] +# (optional) Use statless NAT rules for floating IP. +# Defaults to $facts['os_service_default'] +# # [*ignore_lsp_down*] # (optional) Do not install ARP/ND reply flows for logical switch ports # if the port is DOWN. @@ -223,6 +227,7 @@ class neutron::plugins::ml2::ovn( $broadcast_arps_to_all_routers = $facts['os_service_default'], $ovn_router_indirect_snat = $facts['os_service_default'], $live_migration_activation_strategy = $facts['os_service_default'], + $stateless_nat_enabled = $facts['os_service_default'], $ignore_lsp_down = $facts['os_service_default'], $fdb_removal_limit = $facts['os_service_default'], $mac_binding_removal_limit = $facts['os_service_default'], @@ -283,6 +288,7 @@ class neutron::plugins::ml2::ovn( 'ovn/broadcast_arps_to_all_routers' : value => $broadcast_arps_to_all_routers; 'ovn/ovn_router_indirect_snat' : value => $ovn_router_indirect_snat; 'ovn/live_migration_activation_strategy' : value => $live_migration_activation_strategy; + 'ovn/stateless_nat_enabled' : value => $stateless_nat_enabled; 'ovn_nb_global/ignore_lsp_down' : value => $ignore_lsp_down; 'ovn_nb_global/fdb_removal_limit' : value => $fdb_removal_limit; 'ovn_nb_global/mac_binding_removal_limit' : value => $mac_binding_removal_limit; diff --git a/releasenotes/notes/ovn-stateless_nat_enabled-7762c1f68f144c14.yaml b/releasenotes/notes/ovn-stateless_nat_enabled-7762c1f68f144c14.yaml new file mode 100644 index 000000000..22ef49ee7 --- /dev/null +++ b/releasenotes/notes/ovn-stateless_nat_enabled-7762c1f68f144c14.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The new ``neutron::plugins::ml2::ovn::stateless_nat_enabled`` parameter + has been added. diff --git a/spec/classes/neutron_plugins_ml2_ovn_spec.rb b/spec/classes/neutron_plugins_ml2_ovn_spec.rb index 48b7b601c..0f309141b 100644 --- a/spec/classes/neutron_plugins_ml2_ovn_spec.rb +++ b/spec/classes/neutron_plugins_ml2_ovn_spec.rb @@ -40,6 +40,7 @@ describe 'neutron::plugins::ml2::ovn' do :broadcast_arps_to_all_routers => '', :ovn_router_indirect_snat => '', :live_migration_activation_strategy => '', + :stateless_nat_enabled => '', :ignore_lsp_down => '', :fdb_removal_limit => '', :mac_binding_removal_limit => '', @@ -90,6 +91,7 @@ describe 'neutron::plugins::ml2::ovn' do should contain_neutron_plugin_ml2('ovn/broadcast_arps_to_all_routers').with_value(p[:broadcast_arps_to_all_routers]) should contain_neutron_plugin_ml2('ovn/ovn_router_indirect_snat').with_value(p[:ovn_router_indirect_snat]) should contain_neutron_plugin_ml2('ovn/live_migration_activation_strategy').with_value(p[:live_migration_activation_strategy]) + should contain_neutron_plugin_ml2('ovn/stateless_nat_enabled').with_value(p[:stateless_nat_enabled]) should contain_neutron_plugin_ml2('ovn_nb_global/ignore_lsp_down').with_value(p[:ignore_lsp_down]) should contain_neutron_plugin_ml2('ovn_nb_global/fdb_removal_limit').with_value(p[:fdb_removal_limit]) should contain_neutron_plugin_ml2('ovn_nb_global/mac_binding_removal_limit').with_value(p[:mac_binding_removal_limit]) @@ -131,6 +133,7 @@ describe 'neutron::plugins::ml2::ovn' do :broadcast_arps_to_all_routers => true, :ovn_router_indirect_snat => false, :live_migration_activation_strategy => 'rarp', + :stateless_nat_enabled => false, :ignore_lsp_down => false, :fdb_removal_limit => 12, :mac_binding_removal_limit => 13, @@ -167,6 +170,7 @@ describe 'neutron::plugins::ml2::ovn' do should contain_neutron_plugin_ml2('ovn/broadcast_arps_to_all_routers').with_value(p[:broadcast_arps_to_all_routers]) should contain_neutron_plugin_ml2('ovn/ovn_router_indirect_snat').with_value(p[:ovn_router_indirect_snat]) should contain_neutron_plugin_ml2('ovn/live_migration_activation_strategy').with_value(p[:live_migration_activation_strategy]) + should contain_neutron_plugin_ml2('ovn/stateless_nat_enabled').with_value(p[:stateless_nat_enabled]) should contain_neutron_plugin_ml2('ovn_nb_global/ignore_lsp_down').with_value(p[:ignore_lsp_down]) should contain_neutron_plugin_ml2('ovn_nb_global/fdb_removal_limit').with_value(p[:fdb_removal_limit]) should contain_neutron_plugin_ml2('ovn_nb_global/mac_binding_removal_limit').with_value(p[:mac_binding_removal_limit])