40e825ba93
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
31 lines
1.3 KiB
Plaintext
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))}
|