diff --git a/ci/common/net-config-multinode-os-net-config.yaml b/ci/common/net-config-multinode-os-net-config.yaml index beb12f2c5c..6bbc0c6c4b 100644 --- a/ci/common/net-config-multinode-os-net-config.yaml +++ b/ci/common/net-config-multinode-os-net-config.yaml @@ -28,6 +28,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number ExternalIpSubnet: default: '' description: IP address/subnet on the external network @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number InternalApiIpSubnet: default: '' description: IP address/subnet on the internal_api network @@ -52,6 +64,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -64,6 +82,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -76,6 +100,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number StorageNFSIpSubnet: default: '' description: IP address/subnet on the storage_nfs network @@ -100,6 +130,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: default: '' description: IP address/subnet on the management network @@ -112,6 +148,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number OvSBridgeMtu: default: 1300 description: The mtu of the OvS bridge diff --git a/ci/common/net-config-multinode.yaml b/ci/common/net-config-multinode.yaml index a23a52c47f..ffc882b33d 100644 --- a/ci/common/net-config-multinode.yaml +++ b/ci/common/net-config-multinode.yaml @@ -28,6 +28,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number ExternalIpSubnet: default: '' description: IP address/subnet on the external network @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number InternalApiIpSubnet: default: '' description: IP address/subnet on the internal_api network @@ -52,6 +64,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -64,6 +82,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -76,6 +100,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number StorageNFSIpSubnet: default: '' description: IP address/subnet on the storage_nfs network @@ -92,6 +122,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: default: '' description: IP address/subnet on the management network @@ -104,6 +140,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/common/net-config-simple-bridge.yaml b/ci/common/net-config-simple-bridge.yaml index 52bf8c1c58..4541800ac4 100644 --- a/ci/common/net-config-simple-bridge.yaml +++ b/ci/common/net-config-simple-bridge.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number ExternalIpSubnet: default: '' description: IP address/subnet on the external network @@ -37,6 +43,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number InternalApiIpSubnet: default: '' description: IP address/subnet on the internal_api network @@ -49,6 +61,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -61,6 +79,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -73,6 +97,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number StorageNFSIpSubnet: default: '' description: IP address/subnet on the storage_nfs network @@ -89,6 +119,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: default: '' description: IP address/subnet on the management network @@ -101,6 +137,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml index bad7fbc704..70496d5dc5 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml index 0b01f3dabf..c70281340b 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml index afb583de19..302ed8b2ab 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml index b4e8d99ac6..102a3fbbac 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml index 0b01f3dabf..c70281340b 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml index d55b661161..c45e2110a8 100644 --- a/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml index 9087fe07b5..f4a784b05a 100644 --- a/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml @@ -17,6 +17,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number InternalApiIpSubnet: default: '' description: IP address/subnet on the internal_api network @@ -29,6 +35,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +53,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +71,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +89,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +107,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics/nic-configs/compute.yaml b/ci/environments/network/multiple-nics/nic-configs/compute.yaml index 33416505fe..9a31c0c256 100644 --- a/ci/environments/network/multiple-nics/nic-configs/compute.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/compute.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics/nic-configs/controller.yaml b/ci/environments/network/multiple-nics/nic-configs/controller.yaml index aee95bd289..fea412cb2d 100644 --- a/ci/environments/network/multiple-nics/nic-configs/controller.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/controller.yaml @@ -17,6 +17,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number InternalApiIpSubnet: default: '' description: IP address/subnet on the internal_api network @@ -29,6 +35,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +53,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +71,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +89,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +107,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml index 9087fe07b5..7064a1d630 100644 --- a/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/public-bond/nic-configs/ceph-storage.yaml b/ci/environments/network/public-bond/nic-configs/ceph-storage.yaml index 6681302414..36cabf21ff 100644 --- a/ci/environments/network/public-bond/nic-configs/ceph-storage.yaml +++ b/ci/environments/network/public-bond/nic-configs/ceph-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/public-bond/nic-configs/cinder-storage.yaml b/ci/environments/network/public-bond/nic-configs/cinder-storage.yaml index 740109a4b0..5da86dad0b 100644 --- a/ci/environments/network/public-bond/nic-configs/cinder-storage.yaml +++ b/ci/environments/network/public-bond/nic-configs/cinder-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/public-bond/nic-configs/compute.yaml b/ci/environments/network/public-bond/nic-configs/compute.yaml index 999285dbf7..49ad2945c4 100644 --- a/ci/environments/network/public-bond/nic-configs/compute.yaml +++ b/ci/environments/network/public-bond/nic-configs/compute.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/public-bond/nic-configs/controller.yaml b/ci/environments/network/public-bond/nic-configs/controller.yaml index 83b48ad86e..4b8a943180 100644 --- a/ci/environments/network/public-bond/nic-configs/controller.yaml +++ b/ci/environments/network/public-bond/nic-configs/controller.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/ci/environments/network/public-bond/nic-configs/swift-storage.yaml b/ci/environments/network/public-bond/nic-configs/swift-storage.yaml index 740109a4b0..5da86dad0b 100644 --- a/ci/environments/network/public-bond/nic-configs/swift-storage.yaml +++ b/ci/environments/network/public-bond/nic-configs/swift-storage.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -41,6 +47,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number StorageMgmtIpSubnet: default: '' description: IP address/subnet on the storage_mgmt network @@ -53,6 +65,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number TenantIpSubnet: default: '' description: IP address/subnet on the tenant network @@ -65,6 +83,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network @@ -77,6 +101,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number BondInterfaceOvsOptions: default: 'bond_mode=active-backup' description: The ovs_options string for the bond interface. Set things like @@ -110,6 +140,12 @@ parameters: default: '10.0.0.1' description: default route for the external network type: string + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: number ControlPlaneSubnetCidr: default: '' description: > @@ -129,6 +165,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-bond.j2.yaml b/net-config-bond.j2.yaml index d1866c1864..4f19f34955 100644 --- a/net-config-bond.j2.yaml +++ b/net-config-bond.j2.yaml @@ -35,6 +35,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > @@ -52,6 +58,12 @@ parameters: default: '' description: IP address/subnet on the {{network.name_lower}} network type: string + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} resources: OsNetConfigImpl: diff --git a/net-config-bridge.j2.yaml b/net-config-bridge.j2.yaml index 85eec2d210..0fba3a530f 100644 --- a/net-config-bridge.j2.yaml +++ b/net-config-bridge.j2.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > @@ -50,6 +56,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} resources: OsNetConfigImpl: diff --git a/net-config-linux-bridge.j2.yaml b/net-config-linux-bridge.j2.yaml index 5fc15fa363..8765f344e5 100644 --- a/net-config-linux-bridge.j2.yaml +++ b/net-config-linux-bridge.j2.yaml @@ -19,6 +19,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneDefaultRoute: description: The default route of the control plane network. (The parameter @@ -39,6 +45,12 @@ parameters: The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr attribute.) type: string + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-noop.j2.yaml b/net-config-noop.j2.yaml index 5417761135..dbc1a94a5f 100644 --- a/net-config-noop.j2.yaml +++ b/net-config-noop.j2.yaml @@ -28,6 +28,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > @@ -53,6 +59,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} resources: diff --git a/net-config-standalone.j2.yaml b/net-config-standalone.j2.yaml index 69c9224db4..1479bd9224 100644 --- a/net-config-standalone.j2.yaml +++ b/net-config-standalone.j2.yaml @@ -20,6 +20,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: # Here for compatability, not used. + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-static-bridge-with-external-dhcp.j2.yaml b/net-config-static-bridge-with-external-dhcp.j2.yaml index 2752f2c72c..606666fca4 100644 --- a/net-config-static-bridge-with-external-dhcp.j2.yaml +++ b/net-config-static-bridge-with-external-dhcp.j2.yaml @@ -20,6 +20,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-static-bridge.j2.yaml b/net-config-static-bridge.j2.yaml index 363a790abd..9f80a1566f 100644 --- a/net-config-static-bridge.j2.yaml +++ b/net-config-static-bridge.j2.yaml @@ -20,6 +20,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-static.j2.yaml b/net-config-static.j2.yaml index 46037415ba..b519bede28 100644 --- a/net-config-static.j2.yaml +++ b/net-config-static.j2.yaml @@ -19,6 +19,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' @@ -39,6 +45,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/net-config-undercloud.j2.yaml b/net-config-undercloud.j2.yaml index e106dfb5ad..71e68eb0ea 100644 --- a/net-config-undercloud.j2.yaml +++ b/net-config-undercloud.j2.yaml @@ -20,6 +20,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' @@ -40,6 +46,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number DnsServers: # Override this via parameter_defaults default: [] description: > diff --git a/network/config/2-linux-bonds-vlans/role.role.j2.yaml b/network/config/2-linux-bonds-vlans/role.role.j2.yaml index ebd34b8472..3356dc2a57 100644 --- a/network/config/2-linux-bonds-vlans/role.role.j2.yaml +++ b/network/config/2-linux-bonds-vlans/role.role.j2.yaml @@ -26,7 +26,13 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json -{%- for network in networks %} + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} {{network.name}}IpSubnet: default: '' @@ -36,6 +42,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -84,6 +96,41 @@ parameters: resources: + + MinViableMtuBondApi: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) and network.name in role.networks and not network.name.startswith('Tenant') %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + + MinViableMtuBondData: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.name.startswith('Tenant') and network.enabled|default(true) and network.name in role.networks %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -97,6 +144,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false addresses: - ip_netmask: @@ -117,6 +166,8 @@ resources: {%- endif %} - type: linux_bond name: bond_api + mtu: + get_attr: [MinViableMtuBondApi, value] use_dhcp: false bonding_options: get_param: BondInterfaceOvsOptions @@ -125,12 +176,18 @@ resources: members: - type: interface name: nic2 + mtu: + get_attr: [MinViableMtuBondApi, value] primary: true - type: interface name: nic3 + mtu: + get_attr: [MinViableMtuBondApi, value] {%- for network in networks if network.enabled|default(true) and network.name in role.networks and not network.name.startswith('Tenant') %} - type: vlan device: bond_api + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID addresses: @@ -153,17 +210,25 @@ resources: members: - type: linux_bond name: bond-data + mtu: + get_attr: [MinViableMtuBondData, value] bonding_options: get_param: BondInterfaceOvsOptions members: - type: interface name: nic4 + mtu: + get_attr: [MinViableMtuBondData, value] primary: true - type: interface name: nic5 + mtu: + get_attr: [MinViableMtuBondData, value] {%- for network in networks if network.name.startswith('Tenant') and network.name in role.networks and network.enabled|default(true) %} - type: vlan device: bond-data + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID addresses: diff --git a/network/config/bond-with-vlans/controller-no-external.j2.yaml b/network/config/bond-with-vlans/controller-no-external.j2.yaml index 6b81706232..993dbd1e56 100644 --- a/network/config/bond-with-vlans/controller-no-external.j2.yaml +++ b/network/config/bond-with-vlans/controller-no-external.j2.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -38,6 +44,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' diff --git a/network/config/bond-with-vlans/controller-v6.j2.yaml b/network/config/bond-with-vlans/controller-v6.j2.yaml index 39c347c347..6963886ce7 100644 --- a/network/config/bond-with-vlans/controller-v6.j2.yaml +++ b/network/config/bond-with-vlans/controller-v6.j2.yaml @@ -27,6 +27,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -36,6 +42,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -75,6 +87,24 @@ parameters: for OVS bonds or like mode=4 for Linux bonds using this option.' type: string resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -88,6 +118,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false addresses: - ip_netmask: @@ -106,20 +138,30 @@ resources: get_param: ControlPlaneDefaultRoute - type: ovs_bridge name: bridge_name + mtu: + get_attr: [MinViableMtu, value] dns_servers: get_param: DnsServers members: - type: ovs_bond name: bond1 + mtu: + get_attr: [MinViableMtu, value] ovs_options: get_param: BondInterfaceOvsOptions members: - type: interface name: nic2 + mtu: + get_attr: [MinViableMtu, value] primary: true - type: interface name: nic3 + mtu: + get_attr: [MinViableMtu, value] - type: vlan + mtu: + get_attr: [ExternalMtu, value] vlan_id: get_param: ExternalNetworkVlanID addresses: @@ -132,6 +174,8 @@ resources: next_hop: get_param: ExternalInterfaceDefaultRoute - type: vlan + mtu: + get_attr: [InternalApiMtu, value] vlan_id: get_param: InternalApiNetworkVlanID addresses: @@ -140,6 +184,8 @@ resources: routes: get_param: InternalApiInterfaceRoutes - type: vlan + mtu: + get_attr: [StorageMtu, value] vlan_id: get_param: StorageNetworkVlanID addresses: @@ -148,6 +194,8 @@ resources: routes: get_param: StorageInterfaceRoutes - type: vlan + mtu: + get_attr: [StorageMgmtMtu, value] vlan_id: get_param: StorageMgmtNetworkVlanID addresses: @@ -156,6 +204,8 @@ resources: routes: get_param: StorageMgmtInterfaceRoutes - type: vlan + mtu: + get_attr: [TenantMtu, value] vlan_id: get_param: TenantNetworkVlanID addresses: @@ -168,6 +218,8 @@ resources: # out the default route on the External interface. This will # make the External API unreachable from remote subnets. #- type: vlan + # mtu: + # get_attr: [ManagementMtu, value] # vlan_id: # get_param: ManagementNetworkVlanID # addresses: diff --git a/network/config/bond-with-vlans/role.role.j2.yaml b/network/config/bond-with-vlans/role.role.j2.yaml index abb7472dba..7d55720482 100644 --- a/network/config/bond-with-vlans/role.role.j2.yaml +++ b/network/config/bond-with-vlans/role.role.j2.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks if network.enabled|default(true) and network.name in role.networks %} {{network.name}}IpSubnet: default: '' @@ -34,17 +40,23 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number -{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number +{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' description: default route for the {{network.name_lower}} network type: string -{%- elif network.gateway_ip|default(false) %} +{%- elif network.gateway_ip|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ip}}' description: default route for the {{network.name_lower}} network type: string -{%- endif %} +{%- endif %} {{network.name}}InterfaceRoutes: default: [] description: > @@ -79,6 +91,24 @@ parameters: type: number {%- endif %} resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -92,6 +122,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false addresses: - ip_netmask: @@ -112,26 +144,34 @@ resources: {%- endif %} {%- if not role.name.startswith('ComputeOvsDpdk') %} - type: ovs_bridge -{%- if role.name.startswith('CephStorage') or role.name.startswith('ObjectStorage') or role.name.startswith('BlockStorage') %} +{%- if role.name.startswith('CephStorage') or role.name.startswith('ObjectStorage') or role.name.startswith('BlockStorage') %} name: br-bond -{%- else %} +{%- else %} name: bridge_name -{%- endif %} +{%- endif %} dns_servers: get_param: DnsServers members: - type: ovs_bond name: bond1 + mtu: + get_attr: [MinViableMtu, value] ovs_options: get_param: BondInterfaceOvsOptions members: - type: interface name: nic2 + mtu: + get_attr: [MinViableMtu, value] primary: true - type: interface name: nic3 -{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} + mtu: + get_attr: [MinViableMtu, value] +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} - type: vlan + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID addresses: @@ -140,16 +180,18 @@ resources: routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} -{%- endfor %} +{%- endif %} +{%- endfor %} {%- else %} # Linux bond for non-DPDK traffic required when using DPDK - type: linux_bond name: bond_api + mtu: + get_attr: [MinViableMtu, value] bonding_options: get_param: BondInterfaceOvsOptions use_dhcp: false @@ -158,12 +200,18 @@ resources: members: - type: interface name: nic2 + mtu: + get_attr: [MinViableMtu, value] primary: true - type: interface name: nic3 -{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} + mtu: + get_attr: [MinViableMtu, value] +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} - type: vlan device: bond_api + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID addresses: @@ -172,12 +220,12 @@ resources: routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} -{%- endfor %} +{%- endif %} +{%- endfor %} # Used as a provider network with external DHCP - type: ovs_user_bridge name: br-dpdk0 diff --git a/network/config/multiple-nics/compute-dvr.j2.yaml b/network/config/multiple-nics/compute-dvr.j2.yaml index 15d32fdc12..4c7341b87f 100644 --- a/network/config/multiple-nics/compute-dvr.j2.yaml +++ b/network/config/multiple-nics/compute-dvr.j2.yaml @@ -27,6 +27,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -36,6 +42,12 @@ parameters: default: {{network.vlan|default("")}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -82,6 +94,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false dns_servers: get_param: DnsServers @@ -102,6 +116,8 @@ resources: get_param: ControlPlaneDefaultRoute - type: interface name: nic2 + mtu: + get_param: StorageMtu use_dhcp: false addresses: - ip_netmask: @@ -110,6 +126,8 @@ resources: get_param: StorageInterfaceRoutes - type: interface name: nic4 + mtu: + get_param: InternalApiMtu use_dhcp: false addresses: - ip_netmask: @@ -118,6 +136,8 @@ resources: get_param: InternalApiInterfaceRoutes - type: ovs_bridge name: br-tenant + mtu: + get_param: TenantMtu use_dhcp: false addresses: - ip_netmask: @@ -127,23 +147,31 @@ resources: members: - type: interface name: nic5 + mtu: + get_param: TenantMtu use_dhcp: false primary: true # External bridge for DVR (no IP address required) - type: ovs_bridge name: bridge_name + mtu: + get_param: ExternalMtu dns_servers: get_param: DnsServers use_dhcp: false members: - type: interface name: nic6 + mtu: + get_param: ExternalMtu primary: true # Uncomment when including environments/network-management.yaml # If setting default route on the Management interface, comment # out the default route on the Control Plane. #- type: interface # name: nic7 + # mtu: + # get_param: ManagementMtu # use_dhcp: false # addresses: # - ip_netmask: diff --git a/network/config/multiple-nics/controller-v6.j2.yaml b/network/config/multiple-nics/controller-v6.j2.yaml index ab04bf6403..45e62b82fb 100644 --- a/network/config/multiple-nics/controller-v6.j2.yaml +++ b/network/config/multiple-nics/controller-v6.j2.yaml @@ -26,6 +26,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -35,6 +41,12 @@ parameters: default: {{network.vlan|default("")}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -81,6 +93,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false dns_servers: get_param: DnsServers @@ -102,6 +116,8 @@ resources: get_param: ControlPlaneDefaultRoute - type: interface name: nic2 + mtu: + get_param: StorageMtu use_dhcp: false addresses: - ip_netmask: @@ -110,6 +126,8 @@ resources: get_param: StorageInterfaceRoutes - type: interface name: nic3 + mtu: + get_param: StorageMgmtMtu use_dhcp: false addresses: - ip_netmask: @@ -118,6 +136,8 @@ resources: get_param: StorageMgmtInterfaceRoutes - type: interface name: nic4 + mtu: + get_param: InternalApiMtu use_dhcp: false addresses: - ip_netmask: @@ -126,6 +146,8 @@ resources: get_param: InternalApiInterfaceRoutes - type: ovs_bridge name: br-tenant + mtu: + get_param: TenantMtu use_dhcp: false addresses: - ip_netmask: @@ -135,10 +157,14 @@ resources: members: - type: interface name: nic5 + mtu: + get_param: TenantMtu use_dhcp: false primary: true - type: ovs_bridge name: bridge_name + mtu: + get_param: ExternalMtu dns_servers: get_param: DnsServers use_dhcp: false @@ -153,6 +179,8 @@ resources: get_param: ExternalInterfaceDefaultRoute members: - type: interface + mtu: + get_param: ExternalMtu name: nic6 primary: true # Uncomment when including environments/network-management.yaml @@ -161,6 +189,8 @@ resources: # make the External API unreachable from remote subnets. #- type: interface # name: nic7 + # mtu: + # get_param: ManagementMtu # use_dhcp: false # addresses: # - ip_netmask: diff --git a/network/config/multiple-nics/role.role.j2.yaml b/network/config/multiple-nics/role.role.j2.yaml index 76aacc17fb..bad30162bc 100644 --- a/network/config/multiple-nics/role.role.j2.yaml +++ b/network/config/multiple-nics/role.role.j2.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks if network.enabled|default(true) and network.name in role.networks %} {{network.name}}IpSubnet: default: '' @@ -34,17 +40,23 @@ parameters: default: {{network.vlan|default("")}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number -{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number +{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' description: default route for the {{network.name_lower}} network type: string -{%- elif network.gateway_ip|default(false) %} +{%- elif network.gateway_ip|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ip}}' description: default route for the {{network.name_lower}} network type: string -{%- endif %} +{%- endif %} {{network.name}}InterfaceRoutes: default: [] description: > @@ -86,6 +98,8 @@ resources: network_config: - type: interface name: nic1 + mtu: + get_param: ControlPlaneMtu use_dhcp: false dns_servers: get_param: DnsServers @@ -108,10 +122,12 @@ resources: {%- endif %} {%- set nics_used = [1] %} {%- for network in networks if network.enabled|default(true) and network.name not in role.networks_skip_config|default([]) %} -{%- if network.name not in ["External", "Tenant"] %} -{%- if network.name in role.networks %} +{%- if network.name not in ["External", "Tenant"] %} +{%- if network.name in role.networks %} - type: interface name: nic{{loop.index + 1}} + mtu: + get_param: {{network.name}}Mtu use_dhcp: false addresses: - ip_netmask: @@ -119,39 +135,45 @@ resources: routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} -{%- endif %} -{%- elif network.name in role.networks or role.name == 'Networker' or role.name == 'ComputeDVR' %} +{%- endif %} +{%- endif %} +{%- elif network.name in role.networks or role.name == 'Networker' or role.name == 'ComputeDVR' %} - type: ovs_bridge -{%- if network.name == "External" %} +{%- if network.name == "External" %} name: bridge_name -{%- else %} +{%- else %} name: br-{{network.name_lower}} -{%- endif %} +{%- endif %} + mtu: + get_param: {{network.name}}Mtu + dns_servers: + get_param: DnsServers use_dhcp: false -{%- if network.name in role.networks %} +{%- if network.name in role.networks %} addresses: - ip_netmask: get_param: {{network.name}}IpSubnet routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} -{%- endif %} +{%- endif %} +{%- endif %} members: - type: interface name: nic{{loop.index + 1}} + mtu: + get_param: {{network.name}}Mtu use_dhcp: false primary: true -{%- endif %} +{%- endif %} {#- This hack gets around Jinja scope limitations to update nics_used within loop. #} {%- set _ = nics_used.append(loop.index) %} {%- endfor %} diff --git a/network/config/single-nic-linux-bridge-vlans/controller-v6.j2.yaml b/network/config/single-nic-linux-bridge-vlans/controller-v6.j2.yaml index 1562b82eaa..0c1f120c86 100644 --- a/network/config/single-nic-linux-bridge-vlans/controller-v6.j2.yaml +++ b/network/config/single-nic-linux-bridge-vlans/controller-v6.j2.yaml @@ -26,6 +26,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -35,6 +41,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -68,6 +80,24 @@ parameters: is automatically resolved from the ctlplane subnet's host_routes attribute.) type: string resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -81,6 +111,8 @@ resources: network_config: - type: linux_bridge name: bridge_name + mtu: + get_attr: [MinViableMtu, value] use_dhcp: false dns_servers: get_param: DnsServers @@ -102,8 +134,12 @@ resources: members: - type: interface name: interface_name + mtu: + get_attr: [MinViableMtu, value] primary: true - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: ExternalNetworkVlanID device: bridge_name @@ -117,6 +153,8 @@ resources: next_hop: get_param: ExternalInterfaceDefaultRoute - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: InternalApiNetworkVlanID device: bridge_name @@ -126,6 +164,8 @@ resources: routes: get_param: InternalApiInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: StorageNetworkVlanID device: bridge_name @@ -135,6 +175,8 @@ resources: routes: get_param: StorageInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: StorageMgmtNetworkVlanID device: bridge_name @@ -144,6 +186,8 @@ resources: routes: get_param: StorageMgmtInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: TenantNetworkVlanID device: bridge_name @@ -157,6 +201,8 @@ resources: # out the default route on the External interface. This will # make the External API unreachable from remote subnets. #- type: vlan + # mtu: + # get_attr: [MinViableMtu, value] # vlan_id: # get_param: ManagementNetworkVlanID # device: bridge_name diff --git a/network/config/single-nic-linux-bridge-vlans/role.role.j2.yaml b/network/config/single-nic-linux-bridge-vlans/role.role.j2.yaml index 2222abac26..14b1d8f26c 100644 --- a/network/config/single-nic-linux-bridge-vlans/role.role.j2.yaml +++ b/network/config/single-nic-linux-bridge-vlans/role.role.j2.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks if network.enabled|default(true) and network.name in role.networks %} {{network.name}}IpSubnet: default: '' @@ -34,17 +40,23 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number -{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number +{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' description: default route for the {{network.name_lower}} network type: string -{%- elif network.gateway_ip|default(false) %} +{%- elif network.gateway_ip|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ip}}' description: default route for the {{network.name_lower}} network type: string -{%- endif %} +{%- endif %} {{network.name}}InterfaceRoutes: default: [] description: > @@ -67,6 +79,24 @@ parameters: is automatically resolved from the ctlplane subnet's host_routes attribute.) type: string resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -84,6 +114,8 @@ resources: {%- else %} name: bridge_name {%- endif %} + mtu: + get_attr: [MinViableMtu, value] use_dhcp: false dns_servers: get_param: DnsServers @@ -107,28 +139,32 @@ resources: members: - type: interface name: interface_name + mtu: + get_attr: [MinViableMtu, value] primary: true {%- for network in networks if network.enabled|default(true) and network.name in role.networks and network.name not in role.networks_skip_config|default([]) %} - type: vlan + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID -{%- if role.name.startswith('CephStorage') or role.name.startswith('ObjectStorage') or role.name.startswith('BlockStorage') %} +{%- if role.name.startswith('CephStorage') or role.name.startswith('ObjectStorage') or role.name.startswith('BlockStorage') %} device: br-storage -{%- else %} +{%- else %} device: bridge_name -{%- endif %} +{%- endif %} addresses: - ip_netmask: get_param: {{network.name}}IpSubnet routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} +{%- endif %} {%- endfor %} outputs: OS::stack_id: diff --git a/network/config/single-nic-vlans/controller-no-external.j2.yaml b/network/config/single-nic-vlans/controller-no-external.j2.yaml index 96a642921c..f0d5acd453 100644 --- a/network/config/single-nic-vlans/controller-no-external.j2.yaml +++ b/network/config/single-nic-vlans/controller-no-external.j2.yaml @@ -29,6 +29,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -38,6 +44,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' diff --git a/network/config/single-nic-vlans/controller-v6.j2.yaml b/network/config/single-nic-vlans/controller-v6.j2.yaml index 5125a72bce..c852705315 100644 --- a/network/config/single-nic-vlans/controller-v6.j2.yaml +++ b/network/config/single-nic-vlans/controller-v6.j2.yaml @@ -26,6 +26,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks %} {{network.name}}IpSubnet: default: '' @@ -35,6 +41,12 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' @@ -68,6 +80,24 @@ parameters: is automatically resolved from the ctlplane subnet's host_routes attribute.) type: string resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -81,6 +111,8 @@ resources: network_config: - type: ovs_bridge name: bridge_name + mtu: + get_attr: [MinViableMtu, value] use_dhcp: false dns_servers: get_param: DnsServers @@ -102,8 +134,12 @@ resources: members: - type: interface name: nic1 + mtu: + get_attr: [MinViableMtu, value] primary: true - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: ExternalNetworkVlanID addresses: @@ -116,6 +152,8 @@ resources: next_hop: get_param: ExternalInterfaceDefaultRoute - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: InternalApiNetworkVlanID addresses: @@ -124,6 +162,8 @@ resources: routes: get_param: InternalApiInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: StorageNetworkVlanID addresses: @@ -132,6 +172,8 @@ resources: routes: get_param: StorageInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: StorageMgmtNetworkVlanID addresses: @@ -140,6 +182,8 @@ resources: routes: get_param: StorageMgmtInterfaceRoutes - type: vlan + mtu: + get_attr: [MinViableMtu, value] vlan_id: get_param: TenantNetworkVlanID addresses: @@ -152,6 +196,8 @@ resources: # out the default route on the External interface. This will # make the External API unreachable from remote subnets. #- type: vlan + # mtu: + # get_attr: [MinViableMtu, value] # vlan_id: # get_param: ManagementNetworkVlanID # addresses: diff --git a/network/config/single-nic-vlans/role.role.j2.yaml b/network/config/single-nic-vlans/role.role.j2.yaml index 739952e982..d7fb2e3c19 100644 --- a/network/config/single-nic-vlans/role.role.j2.yaml +++ b/network/config/single-nic-vlans/role.role.j2.yaml @@ -25,6 +25,12 @@ parameters: Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number {% for network in networks if network.enabled|default(true) and network.name in role.networks %} {{network.name}}IpSubnet: default: '' @@ -34,17 +40,23 @@ parameters: default: {{network.vlan}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number -{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} + {{network.name}}Mtu: + default: {{network.mtu}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number +{%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ipv6}}' description: default route for the {{network.name_lower}} network type: string -{%- elif network.gateway_ip|default(false) %} +{%- elif network.gateway_ip|default(false) %} {{network.name}}InterfaceDefaultRoute: default: '{{network.gateway_ip}}' description: default route for the {{network.name_lower}} network type: string -{%- endif %} +{%- endif %} {{network.name}}InterfaceRoutes: default: [] description: > @@ -67,6 +79,24 @@ parameters: is automatically resolved from the ctlplane subnet's host_routes attribute.) type: string resources: + + MinViableMtu: + # This resource resolves the minimum viable MTU for interfaces, bonds and + # bridges that carry multiple VLANs. Each VLAN may have different MTU. The + # bridge, bond or interface must have an MTU to allow the VLAN with the + # largest MTU. + type: OS::Heat::Value + properties: + type: number + value: + yaql: + expression: $.data.max() + data: + - {get_param: ControlPlaneMtu} +{%- for network in networks if network.enabled|default(true) and network.name in role.networks %} + - {get_param: {{network.name}}Mtu} +{%- endfor %} + OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: @@ -84,6 +114,8 @@ resources: {%- else %} name: bridge_name {%- endif %} + mtu: + get_attr: [MinViableMtu, value] use_dhcp: false dns_servers: get_param: DnsServers @@ -107,10 +139,14 @@ resources: members: - type: interface name: nic1 + mtu: + get_attr: [MinViableMtu, value] # force the MAC address of the bridge to this interface primary: true {%- for network in networks if network.enabled|default(true) and network.name in role.networks %} - type: vlan + mtu: + get_param: {{network.name}}Mtu vlan_id: get_param: {{network.name}}NetworkVlanID addresses: @@ -119,11 +155,11 @@ resources: routes: list_concat_unique: - get_param: {{network.name}}InterfaceRoutes -{%- if network.name in role.default_route_networks %} +{%- if network.name in role.default_route_networks %} - - default: true next_hop: get_param: {{network.name}}InterfaceDefaultRoute -{%- endif %} +{%- endif %} {%- endfor %} outputs: OS::stack_id: diff --git a/network/network.j2 b/network/network.j2 index 16c46c5671..b1655dccd0 100644 --- a/network/network.j2 +++ b/network/network.j2 @@ -79,6 +79,12 @@ parameters: Routes are added to the host_routes property on the subnet in neutron when the network and subnet is created. type: json + {{network.name}}Mtu: + default: {{network.mtu|default('1500')}} + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + {{network.name}} network. + type: number resources: {{network.name}}Network: @@ -87,7 +93,10 @@ resources: admin_state_up: {get_param: {{network.name}}NetAdminStateUp} name: {get_param: {{network.name}}NetName} shared: {get_param: {{network.name}}NetShared} - value_specs: {get_param: {{network.name}}NetValueSpecs} + value_specs: + map_merge: + - {get_param: {{network.name}}NetValueSpecs} + - {'mtu': {get_param: {{network.name}}Mtu}} {{network.name}}Subnet: type: OS::Neutron::Subnet diff --git a/network/ports/noop.yaml b/network/ports/noop.yaml index 740a8cf736..7b4ee2ebe5 100644 --- a/network/ports/noop.yaml +++ b/network/ports/noop.yaml @@ -19,6 +19,12 @@ parameters: description: The name of the undercloud Neutron control plane subnet default: ctlplane-subnet type: string + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number PortName: description: Name of the port default: '' @@ -66,3 +72,7 @@ outputs: host_routes: # Here for compatibility description: Host routes of the ports subnet value: [] + mtu: + description: The maximum transmission unit (MTU) + value: + get_param: ControlPlaneMtu diff --git a/network/ports/port.j2 b/network/ports/port.j2 index a60d944e2a..19ac0d9271 100644 --- a/network/ports/port.j2 +++ b/network/ports/port.j2 @@ -101,3 +101,7 @@ outputs: description: Host routes of the ports subnet value: get_attr: [{{network.name}}Port, subnets, 0, host_routes] + mtu: + description: The maximum transmission unit (MTU) + value: + get_attr: [{{network.name}}Port, network, mtu] diff --git a/network/ports/port_from_pool.j2 b/network/ports/port_from_pool.j2 index 588315b834..cdcd554a1a 100644 --- a/network/ports/port_from_pool.j2 +++ b/network/ports/port_from_pool.j2 @@ -81,4 +81,7 @@ outputs: host_routes: description: Host routes of the ports subnet value: {{network.routes|default([])}} + mtu: + description: The maximum transmission unit (MTU) + value: {{network.mtu|default('1500')}} diff --git a/network_data.yaml b/network_data.yaml index 7777e1d81e..9f315b49df 100644 --- a/network_data.yaml +++ b/network_data.yaml @@ -29,6 +29,9 @@ # set some default IPv6 addresses. # compat_name: for existing stack you may need to override the default # transformation for the resource's name. +# mtu: Set the maximum transmission unit (MTU) that is guaranteed to pass +# through the data path of the segments in the network. +# (optional, defaults to 1500) # # Example: # - name Example @@ -62,6 +65,7 @@ allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] ipv6_subnet: 'fd00:fd00:fd00:3000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: StorageMgmt name_lower: storage_mgmt vip: true @@ -70,6 +74,7 @@ allocation_pools: [{'start': '172.16.3.4', 'end': '172.16.3.250'}] ipv6_subnet: 'fd00:fd00:fd00:4000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: InternalApi name_lower: internal_api vip: true @@ -78,6 +83,7 @@ allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: Tenant vip: false # Tenant network does not use VIPs name_lower: tenant @@ -87,6 +93,7 @@ # Note that tenant tunneling is only compatible with IPv4 addressing at this time. ipv6_subnet: 'fd00:fd00:fd00:5000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: External vip: true name_lower: external @@ -97,6 +104,7 @@ ipv6_subnet: '2001:db8:fd00:1000::/64' ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}] gateway_ipv6: '2001:db8:fd00:1000::1' + mtu: 1500 - name: Management # Management network is enabled by default for backwards-compatibility, but # is not included in any roles by default. Add to role definitions to use. @@ -110,3 +118,4 @@ gateway_ipv6: 'fd00:fd00:fd00:6000::1' ipv6_subnet: 'fd00:fd00:fd00:6000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}] + mtu: 1500 diff --git a/network_data_ganesha.yaml b/network_data_ganesha.yaml index ced25c2df0..850fb56507 100644 --- a/network_data_ganesha.yaml +++ b/network_data_ganesha.yaml @@ -26,6 +26,9 @@ # set some default IPv6 addresses. # compat_name: for existing stack you may need to override the default # transformation for the resource's name. +# mtu: Set the maximum transmission unit (MTU) that is guaranteed to pass +# through the data path of the segments in the network. +# (optional, defaults to 1500) # # Example: # - name Example @@ -59,6 +62,7 @@ allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] ipv6_subnet: 'fd00:fd00:fd00:3000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: StorageMgmt name_lower: storage_mgmt vip: true @@ -67,6 +71,7 @@ allocation_pools: [{'start': '172.16.3.4', 'end': '172.16.3.250'}] ipv6_subnet: 'fd00:fd00:fd00:4000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: InternalApi name_lower: internal_api vip: true @@ -75,6 +80,7 @@ allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: Tenant vip: false # Tenant network does not use VIPs name_lower: tenant @@ -84,6 +90,7 @@ # Note that tenant tunneling is only compatible with IPv4 addressing at this time. ipv6_subnet: 'fd00:fd00:fd00:5000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: External vip: true name_lower: external @@ -94,6 +101,7 @@ ipv6_subnet: '2001:db8:fd00:1000::/64' ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}] gateway_ipv6: '2001:db8:fd00:1000::1' + mtu: 1500 - name: Management # Management network is enabled by default for backwards-compatibility, but # is not included in any roles by default. Add to role definitions to use. @@ -107,6 +115,7 @@ gateway_ipv6: 'fd00:fd00:fd00:6000::1' ipv6_subnet: 'fd00:fd00:fd00:6000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}] + mtu: 1500 - name: StorageNFS enabled: true vip: true @@ -116,3 +125,4 @@ allocation_pools: [{'start': '172.16.4.4', 'end': '172.16.4.250'}] ipv6_subnet: 'fd00:fd00:fd00:7000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:7000::10', 'end': 'fd00:fd00:fd00:7000:ffff:ffff:ffff:fffe'}] + mtu: 1500 \ No newline at end of file diff --git a/network_data_routed.yaml b/network_data_routed.yaml index c8d2222202..e699653e6a 100644 --- a/network_data_routed.yaml +++ b/network_data_routed.yaml @@ -40,6 +40,9 @@ # set some default IPv6 addresses. # compat_name: for existing stack you may need to override the default # transformation for the resource's name. +# mtu: Set the maximum transmission unit (MTU) that is guaranteed to pass +# through the data path of the segments in the network. +# (optional, defaults to 1500) # # Example: # A single 10.0.0.0/16 route works for up to 255 /24 networks # - name Example1 @@ -83,6 +86,7 @@ ipv6_subnet: 'fd00:fd00:fd00:3000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:3004::/64', 'nexthop':'fd00:fd00:fd00:3000::1'}] + mtu: 1500 - name: StorageLeaf2 vip: false vlan: 31 @@ -94,6 +98,7 @@ ipv6_subnet: 'fd00:fd00:fd00:3004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3004::10', 'end': 'fd00:fd00:fd00:3004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:3000::/64', 'nexthop':'fd00:fd00:fd00:3004::1'}] + mtu: 1500 - name: StorageMgmt name_lower: storage_mgmt vip: true @@ -105,6 +110,7 @@ ipv6_subnet: 'fd00:fd00:fd00:4000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:4004::/64', 'nexthop':'fd00:fd00:fd00:4000::1'}] + mtu: 1500 - name: StorageMgmtLeaf2 name_lower: storage_mgmt2 vip: false @@ -116,6 +122,7 @@ ipv6_subnet: 'fd00:fd00:fd00:4004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4004::10', 'end': 'fd00:fd00:fd00:4004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:4000::/64', 'nexthop':'fd00:fd00:fd00:4004::1'}] + mtu: 1500 - name: InternalApi name_lower: internal_api vip: true @@ -127,6 +134,7 @@ ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:2004::/64', 'nexthop':'fd00:fd00:fd00:2000::1'}] + mtu: 1500 - name: InternalApiLeaf2 name_lower: internal_api2 vip: false @@ -138,6 +146,7 @@ ipv6_subnet: 'fd00:fd00:fd00:2004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2004::10', 'end': 'fd00:fd00:fd00:2004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:2000::/64', 'nexthop':'fd00:fd00:fd00:2004::1'}] + mtu: 1500 - name: Tenant vip: false # Tenant networks do not use VIPs name_lower: tenant @@ -150,6 +159,7 @@ ipv6_subnet: 'fd00:fd00:fd00:5000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:5004::/64', 'nexthop':'fd00:fd00:fd00:5000::1'}] + mtu: 1500 - name: TenantLeaf2 vip: false # Tenant networks do not use VIPs name_lower: tenant2 @@ -162,6 +172,7 @@ ipv6_subnet: 'fd00:fd00:fd00:5004::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5004::10', 'end': 'fd00:fd00:fd00:5004:ffff:ffff:ffff:fffe'}] routes_ipv6: [{'destination':'fd00:fd00:fd00:5000::/64', 'nexthop':'fd00:fd00:fd00:5004::1'}] + mtu: 1500 - name: External vip: true name_lower: external @@ -172,6 +183,7 @@ ipv6_subnet: '2001:db8:fd00:1000::/64' ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}] gateway_ipv6: '2001:db8:fd00:1000::1' + mtu: 1500 - name: Management # Management network is enabled by default for backwards-compatibility, but # is not included in any roles by default. Add to role definitions to use. @@ -185,3 +197,4 @@ ipv6_subnet: 'fd00:fd00:fd00:6000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}] gateway_ipv6: 'fd00:fd00:fd00:6000::1' + mtu: 1500 diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index d9302f710e..1b224673dc 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -509,6 +509,7 @@ resources: - ctlplane_static_routes_set - {get_param: ControlPlaneStaticRoutes} - {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, host_routes]} + ControlPlaneMtu: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, network, mtu]} EC2MetadataIp: if: - ec2metadaip_set @@ -532,6 +533,7 @@ resources: - {{network.name_lower}}_interface_routes_set - {get_param: {{network.name}}InterfaceRoutes} - {get_attr: [{{network.name}}Port, host_routes]} + {{network.name}}Mtu: {get_attr: [{{network.name}}Port, mtu]} {%- endif %} {%- endfor %} diff --git a/releasenotes/notes/network-templates-mtu-setting-a76fe47cfc97b36f.yaml b/releasenotes/notes/network-templates-mtu-setting-a76fe47cfc97b36f.yaml new file mode 100644 index 0000000000..37425d9bf9 --- /dev/null +++ b/releasenotes/notes/network-templates-mtu-setting-a76fe47cfc97b36f.yaml @@ -0,0 +1,58 @@ +--- +features: + - | + The network data for composible networks have been extended to enable + configuration of the maximum transmission unit (MTU) that is guaranteed to + pass through the data path of the segments in the network. The MTU property + is set on the neutron networks in the undercloud. The MTU information + is used in the nic-config templates so that overcloud node networking is + configured with the correct MTU settings. +upgrade: + - | + Prior to upgrading any custom nic-config templates must have the MTU + associated parameters introduced in this release added. As an example the + following must be added to all nic-config templates when network isolation + is used:: + + ControlPlaneMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the network. + (The parameter is automatically resolved from the ctlplane network's mtu attribute.) + type: number + StorageMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Storage network. + type: number + StorageMgmtMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + StorageMgmt network. + type: number + InternalApiMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + InternalApi network. + type: number + TenantMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Tenant network. + type: number + ExternalMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + External network. + type: numbe + ManagementMtu: + default: 1500 + description: The maximum transmission unit (MTU) size(in bytes) that is + guaranteed to pass through the data path of the segments in the + Management network. + type: number