
This patch is adding a new configuration option called "ovn_emit_need_to_frag" to be set in the "ovn" section of etc/neutron/plugins/ml2_conf.ini. When set to True the option tells ovn whether it should emit "need to frag" packets in case of MTU mismatch. Before enabling this configuration make sure that its supported by the host kernel (version >= 5.2) or by checking the output of the following command: ovs-appctl -t ovs-vswitchd dpif/show-dp-features br-int | grep "Check pkt length action". Defaults to False. This option was intruced by networking-ovn at: https://review.opendev.org/#/c/671766/ Change-Id: I258402e8033726aa9abf2dc5f801fdf724ab9e3a Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
168 lines
6.3 KiB
Puppet
168 lines
6.3 KiB
Puppet
# This class installs and configures the OVN Neutron plugin
|
|
#
|
|
# === Parameters
|
|
#
|
|
# [*ovn_nb_connection*]
|
|
# (optional) The connection string for the OVN_Northbound OVSDB.
|
|
# Defaults to 'tcp:127.0.0.1:6641'
|
|
#
|
|
# [*ovn_sb_connection*]
|
|
# (optional) The connection string for the OVN_Southbound OVSDB
|
|
# Defaults to 'tcp:127.0.0.1:6642'
|
|
#
|
|
# [*ovn_nb_private_key*]
|
|
# (optional) The PEM file with private key for SSL connection to OVN-NB-DB
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_nb_certificate*]
|
|
# (optional) The PEM file with certificate that certifies the private
|
|
# key specified in ovn_nb_private_key
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_nb_ca_cert*]
|
|
# (optional) The PEM file with CA certificate that OVN should use to
|
|
# verify certificates presented to it by SSL peers
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_sb_private_key*]
|
|
# (optional) The PEM file with private key for SSL connection to OVN-SB-DB
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_sb_certificate*]
|
|
# (optional) The PEM file with certificate that certifies the
|
|
# private key specified in ovn_sb_private_key
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_sb_ca_cert*]
|
|
# (optional) The PEM file with CA certificate that OVN should use to
|
|
# verify certificates presented to it by SSL peers
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*package_ensure*]
|
|
# (optional) The intended state of the python-networking-odl
|
|
# package, i.e. any of the possible values of the 'ensure'
|
|
# property for a package resource type.
|
|
# Defaults to 'present'
|
|
#
|
|
# [*ovsdb_connection_timeout*]
|
|
# (optional) Timeout in seconds for the OVSDB connection transaction
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*neutron_sync_mode*]
|
|
# (optional) The synchronization mode of OVN with Neutron DB.
|
|
# Valid values are - 'log', 'off', 'repair'
|
|
# off - synchronization is off
|
|
# log - during neutron-server startup check to see if OVN is in sync with
|
|
# the Neutron database. Log warnings for any inconsistencies found so
|
|
# that an admin can investigate.
|
|
# repair - during neutron-server startup, automatically create resources
|
|
# found in Neutron but not in OVN. Also remove resources from OVN
|
|
# that are no longer in Neutron.
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_l3_mode*]
|
|
# (optional) Whether to use OVN native L3 support. Do not change the
|
|
# value for existing deployments that contain routers.
|
|
# Type: boolean
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*vif_type*]
|
|
# (optional) Type of VIF to be used for ports.
|
|
# Valid values are 'ovs', 'vhostuser'
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_metadata_enabled*]
|
|
# (optional) Whether to enable metadata service in OVN.
|
|
# Type: boolean
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*dvr_enabled*]
|
|
# (optional) Whether to enable DVR.
|
|
# Type: boolean
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*dns_servers*]
|
|
# (optional) List of dns servers which will be as forwarders
|
|
# if a subnet's dns_nameservers is empty.
|
|
# Type: List
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*vhostuser_socket_dir*]
|
|
# (optional) The vhost-user socket directory for OVS
|
|
# Type: String
|
|
# Defaults to $::os_service_default
|
|
#
|
|
# [*ovn_emit_need_to_frag*]
|
|
# (optional) Configure OVN to emit "need to frag" packets in case
|
|
# of MTU mismatch. Before enabling this configuration make
|
|
# sure that its supported by the host kernel (version >=
|
|
# 5.2) or by checking the output of the following command:
|
|
# ovs-appctl -t ovs-vswitchd dpif/show-dp-features br-int |
|
|
# grep "Check pkt length action".
|
|
# Type: boolean
|
|
# Defaults to $::os_service_default
|
|
|
|
class neutron::plugins::ml2::ovn(
|
|
$ovn_nb_connection = $::os_service_default,
|
|
$ovn_sb_connection = $::os_service_default,
|
|
$ovn_nb_private_key = $::os_service_default,
|
|
$ovn_nb_certificate = $::os_service_default,
|
|
$ovn_nb_ca_cert = $::os_service_default,
|
|
$ovn_sb_private_key = $::os_service_default,
|
|
$ovn_sb_certificate = $::os_service_default,
|
|
$ovn_sb_ca_cert = $::os_service_default,
|
|
$package_ensure = 'present',
|
|
$ovsdb_connection_timeout = $::os_service_default,
|
|
$neutron_sync_mode = $::os_service_default,
|
|
$ovn_l3_mode = $::os_service_default,
|
|
$vif_type = $::os_service_default,
|
|
$ovn_metadata_enabled = $::os_service_default,
|
|
$dvr_enabled = $::os_service_default,
|
|
$dns_servers = $::os_service_default,
|
|
$vhostuser_socket_dir = $::os_service_default,
|
|
$ovn_emit_need_to_frag = $::os_service_default,
|
|
) {
|
|
|
|
include ::neutron::deps
|
|
require ::neutron::plugins::ml2
|
|
|
|
if ! is_service_default($ovn_l3_mode) {
|
|
validate_legacy(Boolean, 'validate_bool', $ovn_l3_mode)
|
|
}
|
|
|
|
if ! ( $vif_type in ['ovs', 'vhostuser', $::os_service_default] ) {
|
|
fail( 'Invalid value for vif_type parameter' )
|
|
}
|
|
|
|
if ! ( $neutron_sync_mode in ['off', 'log', 'repair', $::os_service_default] ) {
|
|
fail( 'Invalid value for neutron_sync_mode parameter' )
|
|
}
|
|
|
|
ensure_resource('package', $::neutron::params::ovn_plugin_package,
|
|
{
|
|
ensure => $package_ensure,
|
|
tag => 'openstack',
|
|
}
|
|
)
|
|
|
|
neutron_plugin_ml2 {
|
|
'ovn/ovn_nb_connection' : value => $ovn_nb_connection;
|
|
'ovn/ovn_sb_connection' : value => $ovn_sb_connection;
|
|
'ovn/ovn_nb_private_key' : value => $ovn_nb_private_key;
|
|
'ovn/ovn_nb_certificate' : value => $ovn_nb_certificate;
|
|
'ovn/ovn_nb_ca_cert' : value => $ovn_nb_ca_cert;
|
|
'ovn/ovn_sb_private_key' : value => $ovn_sb_private_key;
|
|
'ovn/ovn_sb_certificate' : value => $ovn_sb_certificate;
|
|
'ovn/ovn_sb_ca_cert' : value => $ovn_sb_ca_cert;
|
|
'ovn/ovsdb_connection_timeout' : value => $ovsdb_connection_timeout;
|
|
'ovn/neutron_sync_mode' : value => $neutron_sync_mode;
|
|
'ovn/ovn_l3_mode' : value => $ovn_l3_mode;
|
|
'ovn/vif_type' : value => $vif_type;
|
|
'ovn/ovn_metadata_enabled' : value => $ovn_metadata_enabled;
|
|
'ovn/enable_distributed_floating_ip' : value => $dvr_enabled;
|
|
'ovn/dns_servers' : value => join(any2array($dns_servers), ',');
|
|
'ovn/vhost_sock_dir' : value => $vhostuser_socket_dir;
|
|
'ovn/ovn_emit_need_to_frag' : value => $ovn_emit_need_to_frag;
|
|
}
|
|
}
|