ironic/devstack/settings
Julia Kreger fe35cb2385 network testing: hooking in an external network simulator
In order to test NGS compatability and generally move the state forward
we need to be able to wire in switch simulators.

This is *not* intended to be run in CI, due to known performance issues.

This first pass hooks up Dell Force10 switches with OS version 9.13, and
does so we can configure the switch as part of the setup.

This makes the prior behavior of configure-vm.py and the VM templates
to be able to execute as it did before
I0ef1ad1b2e50cb26839c618a1367704d51ed8a4d to enable the simulator attachments
because we can't exercise network switch simulators with dynamic
post-vm start network attachments, becuase the attachment to the switch sim
must be done in advance of switch VM launch.

Change-Id: I4addd71adea0b3f6e56b967db848546b5c56561e
2025-03-21 16:09:25 -07:00

36 lines
1.6 KiB
Plaintext

enable_service ironic ir-api ir-cond ir-novnc ir-sw-sim
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 78 bytes. In order to
# handle both cases, lets go ahead and drop the maximum by
# 78 bytes, while not going below 1280 to make IPv6 work at all.
if [[ "$HOST_TOPOLOGY" == "multinode" ]]; then
# This logic is to artificially pin down the PUBLIC_BRIDGE_MTU for
# when we are using mutlinode architecture, as to transfer the
# bytes over the multinode VXLAN tunnel, we need to drop the mtu.
PUBLIC_BRIDGE_MTU=${OVERRIDE_PUBLIC_BRIDGE_MTU:-$((local_mtu - 78))}
fi