From 40e825ba93c8fb0bcc2d9ef0428b64a46286e0c0 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Tue, 29 Aug 2023 14:12:49 -0700 Subject: [PATCH] CI: Fix our internal MTU settings Long story short, we auto-clamp down everything to 1400 bytes due to VXLAN tunneling for multinode testing. But there are other reasons to clamp it smaller, and we will need to clamp that further for multinode should we mix it with OVN. Anyway, this should make things cleaner and we should rely upon the gate calcualted MTU as a starting place, not the guess based upon interface list. i.e. test VM could be wrong but gate could know better. Change-Id: I385679fe30d1447f1ed94cdf5a419e6acefbc595 --- devstack/settings | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/devstack/settings b/devstack/settings index cafa85384a..2f77dadf20 100644 --- a/devstack/settings +++ b/devstack/settings @@ -2,11 +2,25 @@ enable_service ironic ir-api ir-cond source $DEST/ironic/devstack/common_settings +# Set a default, so we can overwrite it if we need to. +PUBLIC_BRIDGE_MTU=${PUBLIC_BRIDGE_MTU:-1500} + # NOTE(vsaienko) mtu calculation has been changed recently to 1450 # https://github.com/openstack/neutron/commit/51a697 # and caused https://bugs.launchpad.net/ironic/+bug/1631875 # Get the smallest local MTU local_mtu=$(ip link show | sed -ne 's/.*mtu \([0-9]\+\).*/\1/p' | sort -n | head -1) + +# At some point, devstack started pre-populating a public bridge mtu, +# which is fine, but that also got set and used in neutron as the MTU, +# which is fine, but if our MTU is lower, then that can create headaches, +# unless we *need* it lower for specific multinode testing. +# so if the calculated local_mtu *is* higher, then we are wrong, and trust +# a prepopulated variable (1500-40-30=1430 bytes) +if [ $local_mtu -gt $PUBLIC_BRIDGE_MTU ]; then + local_mtu=$PUBLIC_BRIDGE_MTU +fi + # 50 bytes is overhead for vxlan (which is greater than GRE # allowing us to use either overlay option with this MTU. # However, if traffic is flowing over IPv6 tunnels, then