Description of problem: When VLAN transparency is configured (only supported on OVN, see BZ1846019), tenant or provider networks can be created with is_vlan_transparent=true In those cases, a VLAN can be manually created on VM instances. For example: - vm1, whose port eth0 is connected to tenant network net1 - vlan10 is created on eth0 with IP 192.168.0.10 - vm2, whose port eth0 is connected to tenant network net1 - vlan10 is created on eth0 with IP 192.168.0.20 Connectivity between 192.168.0.10 and 192.168.0.20 should work fine. However, there might be a problem with MTU due to the 4 bytes added by the vlan 10: - neutron configured mtu is 1500: [root@controller-1 ~]# crudini --get /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT global_physnet_mtu 1500 - in that case, neutron network mtu will 1500 too: (overcloud) [stack@undercloud-0 ~]$ openstack network show db0f1ae2-2a58-4590-9f92-0beb741c1e2f -c mtu -f value 1500 - eth0 default MTU will be 1500 too In this case, compute interface mtu should be configured to 1504 or higher in order to avoid packet drops. With a lower value, VLAN header with 4 bytes are added to packets with size 1500 and they are dropped on the compute node.
Isn't it better to advise to use 1496 (like we set for vxlan) as MTU for networks than requesting to set 1504 as the MTU for infrastructure?
(In reply to Sadique Puthen from comment #1) > Isn't it better to advise to use 1496 (like we set for vxlan) as MTU for > networks than requesting to set 1504 as the MTU for infrastructure? You are right. Thanks. Let me add some more details about this bug: - There is an upstream bug to modify default neutron network's mtu value when vlan transparency is enabled: https://bugs.launchpad.net/neutron/+bug/1906318 This change is not expected for 16.1.4 (when VLAN transparency support for OVN is expected, BZ1846019), so this documentation bug is needed. - With OVN, the following default MTU values are used at network creation: flat and vlan networks -> default_mtu = global_physnet_mtu (1500 in the example from the description) geneve networks -> default_mtu = global_physnet_mtu - 58 (1442) -> the reason for this difference is the lenght of the geneve headers added to the packet If vlan transparency is enabled and underlay network interfaces mtu is global_physnet_mtu (1500), some packets might be dropped. - Two alternative solutions that could be documented: a. reduce network mtu in 4 bytes at network creation when vlan-transparency is enabled: openstack network create --mtu 1438 --transparent-vlan n1 b. increase underlay network interfaces mtu: [root@compute-0 ~]# ip link set dev ens4 mtu 1504