br-int has an unpredictable MTU
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Expired
|
Undecided
|
Unassigned |
Bug Description
We have an environment where users can plug their VMs both to tenant and provider networks on the hypervisor. This environment does not have jumbo frames. The MTU for VMs plugged directly into provider networks is 1500 (physical network) however it is 1450 for tneant networks (VXLAN).
The code which creates the br-int bridge does not factor in an MTU, which means depending on what gets plugged in first, you could end up with 1500 MTU interfaces connected to br-int, which would give things like this in the system logs:
br-int: dropped over-mtu packet: 1500 > 1458
I'm not sure what the best solution inside Neutron to do. Should we perhaps set br-int to the MTU of the largest physical network attachable on the agent? I'm happy to pick up the work.
Interesting, so after further research, it seems that Open vSwitch will set the MTU to the lowest MTU of all the ports attached, which isn't correct in this case.
ovs-vsctl set int br-int mtu_request=1500
By setting this, it will set the MTU of the bridge appropriately, see: http:// docs.openvswitc h.org/en/ latest/ faq/issues/ under "Q: How can I configure the bridge internal interface MTU? Why does Open vSwitch keep changing internal ports MTU?"
Should we have Neutron update that setting instead?