ironic/devstack/settings
Julia Kreger 40e825ba93 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
2023-10-09 13:13:29 +00:00

31 lines
1.3 KiB
Plaintext

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
# The overhead is essentially another 100 bytes. In order to
# handle both cases, lets go ahead and drop the maximum by
# 100 bytes.
PUBLIC_BRIDGE_MTU=${OVERRIDE_PUBLIC_BRIDGE_MTU:-$((local_mtu - 100))}