Who's supposed to set the MTU on a nova instance's VIF's tap interface?

asked 2017-04-17 20:28:00 -0600

imacdonn gravatar image

Asking here before filing a bug, in case I'm missing something.

OpenStack Ocata, ML2 with linuxbridge. global_physnet_mtu and path_mtu set to 9000. Create a VLAN network (it gets MTU 9000 by default). When I launch the first nova instance, the bridge gets created (by os_vif under nova-compute), then the libvirt domain is started, which creates the tap interface and adds it to the bridge. At this point, both the bridge and the tap interface have the default MTU of 1500. neutron-linuxbridge-agent then notices that the tap interface showed up, and does vif plugging, which results in the VLAN interface getting created, and added to the bridge. Because (in my case), the physical network device has MTU 9000, the VLAN interface inherits that. However, the bridge interface still has MTU 1500, because it assumes the lowest amongst its member ports (i.e. the tap interface). The VM them gets told by DHCP that its MTU is 9000, so when it tries to do anything involving large packets, they get dropped.

Just for interest: if I then delete the first instance, the tap interface goes away, so now the lowest MTU member of the bridge is the VLAN interface, so the bridge MTU goes up to 9000. If then create a new nova instance, its tap interface picks up the bridge's MTU of 9000, and it works.

This issue was previously addressed by https://bugs.launchpad.net/networking-cisco/+bug/1443607 (https://bugs.launchpad.net/networking...) but that was later reverted by https://bugs.launchpad.net/neutron/+bug/1605271 (https://bugs.launchpad.net/neutron/+b...) , which claims that "Now that we have proper MTU behaviour in interface drivers, this is not needed."... but that does not appear to be the case. If I "unrevert" the fix, it works (for the first VM, when the bridge doesn't yet exist) as I expect. The revert bug also notes that "This could have been achieved by setting network_device_mtu on Nova side", so it's not clear to me whose responsibility it should be to set the tap interface's MTU - nova-compute, or the neutron l2 agent??

Or am I missing something?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2017-04-19 21:00:37 -0600

imacdonn gravatar image

Discussed with nova and neutron devs, and decided that the l2 agent needs to handle this, at least for a while. Opened bug https://bugs.launchpad.net/neutron/+bug/1684326 (https://bugs.launchpad.net/neutron/+b...)

edit flag offensive delete link more

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2017-04-17 20:19:04 -0600

Seen: 1,063 times

Last updated: Apr 19 '17