neutron: remove tenant MTU configuration options

Since Mitaka, Neutron and Nova do the right thing for MTU, correctly
calculating and applying MTU per network, considering its network type
and underlying physical network MTU (1500 by default). Neutron now also
correctly advertise proper MTU to instances through DHCP and RA
mechanisms. With that, there is no reason to have those MTU hacks in
deployment tools. Actually, they not only do no good, but break some
setups (Jumbo frame aware infrastructure), or at least make them
non-optimal (lowering instance MTU to 1400 when it's not needed, or when
tunnel overhead does not require 100 bytes).

Note that Neutron still has a set of configuration options to allow for
custom physical network MTUs (global_physnet_mtu, path_mtu,
physical_network_mtus). Those options define underlying infrastructure
though, not tenant MTUs. To support Jumbo frames, TripleO should allow
to set those options. That said, it's not the immediate goal of the
patch, and hence such an effort would require a separate patch.

Mitaka+ documentation on MTU configuration for Neutron:
http://docs.openstack.org/mitaka/networking-guide/adv-config-mtu.html

Change-Id: I540ba5dc69d0506f71b59746efcce94c73f9317f
This commit is contained in:
Ihar Hrachyshka 2016-06-06 15:36:54 +02:00 committed by Brent Eagles
parent 56398e72be
commit 2a64b67cef
4 changed files with 1 additions and 58 deletions

View File

@ -134,15 +134,6 @@ parameters:
description: Shared secret to prevent spoofing
type: string
hidden: true
NeutronTenantMtu:
description: >
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
be at least 50 bytes smaller than the MTU on the physical network. This
value will be used to set the MTU on the virtual Ethernet device.
This value will be used to construct the NeutronDnsmasqOptions, since that
will determine the MTU that is assigned to the VM host through DHCP.
default: "1400"
type: string
NeutronTunnelTypes:
default: 'vxlan'
description: |
@ -820,7 +811,6 @@ resources:
MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
MysqlMaxConnections: {get_param: MysqlMaxConnections}
MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
NeutronTenantMtu: {get_param: NeutronTenantMtu}
NeutronPublicInterface: {get_param: NeutronPublicInterface}
NeutronPassword: {get_param: NeutronPassword}
NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
@ -886,7 +876,6 @@ resources:
KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
NeutronTenantMtu: {get_param: NeutronTenantMtu}
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}

View File

@ -118,15 +118,6 @@ parameters:
default: nic1
description: A port to add to the NeutronPhysicalBridge.
type: string
NeutronTenantMtu:
description: >
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
be at least 50 bytes smaller than the MTU on the physical network. This
value will be used to set the MTU on the virtual Ethernet device.
This number is related to the value of NeutronDnsmasqOptions, since that
will determine the MTU that is assigned to the VM host through DHCP.
default: 1400
type: number
NeutronTunnelTypes:
type: comma_delimited_list
description: |
@ -517,7 +508,6 @@ resources:
nova::migration::live_migration_tunnelled: {get_input: nova_enable_rbd_backend}
rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
nova_password: {get_input: nova_password}
nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
nova::vncproxy::common::vncproxy_protocol: {get_input: nova_vncproxy_protocol}
nova::vncproxy::common::vncproxy_host: {get_input: nova_vncproxy_host}
@ -543,7 +533,6 @@ resources:
neutron_host: {get_input: neutron_host}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
neutron::agents::ml2::ovs::extensions: {get_input: neutron_agent_extensions}
@ -643,7 +632,6 @@ resources:
template: MAPPINGS
params:
MAPPINGS: {get_param: NeutronBridgeMappings}
neutron_tenant_mtu: {get_param: NeutronTenantMtu}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
neutron_physical_bridge: {get_param: NeutronPhysicalBridge}

View File

@ -236,15 +236,6 @@ parameters:
default: nic1
description: What interface to bridge onto br-ex for network nodes.
type: string
NeutronTenantMtu:
description: >
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
be at least 50 bytes smaller than the MTU on the physical network. This
value will be used to set the MTU on the virtual Ethernet device.
This number is related to the value of NeutronDnsmasqOptions, since that
will determine the MTU that is assigned to the VM host through DHCP.
default: 1400
type: number
NovaEnableDBPurge:
default: true
description: |
@ -584,7 +575,6 @@ resources:
CLUSTER: {get_param: MysqlClusterUniquePart}
neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
neutron_password: {get_param: NeutronPassword}
neutron_tenant_mtu: {get_param: NeutronTenantMtu}
neutron_internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] }
neutron_public_url: { get_param: [ EndpointMap, NeutronPublic, uri ] }
neutron_admin_url: { get_param: [ EndpointMap, NeutronAdmin, uri ] }
@ -856,7 +846,6 @@ resources:
# Neutron
neutron::bind_host: {get_input: neutron_api_network}
neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
neutron::keystone::auth::public_url: {get_input: neutron_public_url }
@ -950,7 +939,6 @@ resources:
nova::api::api_bind_address: {get_input: nova_api_network}
nova::api::metadata_listen: {get_input: nova_metadata_network}
nova::api::admin_password: {get_input: nova_password}
nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
nova::database_connection: {get_input: nova_dsn}
nova::api_database_connection: {get_input: nova_api_dsn}
nova::glance_api_servers: {get_input: glance_api_servers}

View File

@ -13,22 +13,6 @@ parameters:
default: 'False'
description: If True, DHCP provide metadata route to VM.
type: string
NeutronDnsmasqOptions:
default: 'dhcp-option-force=26,%MTU%'
description: >
Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
to be set to the value of NeutronTenantMtu, which should be set to account
for tunnel overhead.
type: string
NeutronTenantMtu:
description: >
The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
be at least 50 bytes smaller than the MTU on the physical network. This
value will be used to set the MTU on the virtual Ethernet device.
This value will be used to construct the NeutronDnsmasqOptions, since that
will determine the MTU that is assigned to the VM host through DHCP.
default: "1400"
type: string
resources:
@ -42,12 +26,6 @@ outputs:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
- neutron::agents::dhcp::dnsmasq_config_file: /etc/neutron/dnsmasq-neutron.conf
tripleo::profile::base::neutron::dhcp:
str_replace:
template: {get_param: NeutronDnsmasqOptions}
params:
'%MTU%': {get_param: NeutronTenantMtu}
neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
- neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
step_config: |
include tripleo::profile::base::neutron::dhcp