From ec53c6b5d262926ed4555799fb4af5ccdb3e3213 Mon Sep 17 00:00:00 2001 From: Julia Kreger <juliaashleykreger@gmail.com> Date: Mon, 10 Feb 2025 08:32:31 -0800 Subject: [PATCH] CI: Only artificially pin down the mtu in multinode So the prime driver behind pinning the MTU down on our interfaces is so traffic can cross mutlinode vxlan tunnels between nodes where the devstack plugin is executing to support more complex tests. But the reality is that doesn't always make sense, and when Neutron has a default mtu override based upon "upstream" traffic constraints, that is likey okay as well. Part of the CI configuration auto-pins the MTU down, which is fine for single node testing, however with multinode we need to pin the MTU further down to try and prevent packets from being dropped on the internal interfaces use to wire up test VMs. Change-Id: Idc145f4eea87a8db69202b8d7953975d7d5cba2c --- devstack/lib/ironic | 7 +++++++ devstack/settings | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/devstack/lib/ironic b/devstack/lib/ironic index b11289c79e..463f1edc29 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -1446,6 +1446,13 @@ function configure_ironic_inspection_network { } function configure_ironic_provision_network { + if [[ "$HOST_TOPOLOGY" == "multinode" ]]; then + # This should artificially drop the default before we get any + # further into the overall process, as post neutron setup, before + # the plugin proceeds past neutorn, this gets set. Which is fine, but + # if we're in a multinode topology, we need to pin this down to match. + iniset $NEUTRON_CONF DEFAULT global_physnet_mtu "$PUBLIC_BRIDGE_MTU" + fi configure_neutron_dhcp_enable_addr6_list if [[ "$IRONIC_IP_VERSION" == "6" ]]; then # NOTE(TheJulia): Ideally we should let this happen diff --git a/devstack/settings b/devstack/settings index b40d6e127e..20f4b354d1 100644 --- a/devstack/settings +++ b/devstack/settings @@ -27,7 +27,9 @@ fi # 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. -PUBLIC_BRIDGE_MTU=${OVERRIDE_PUBLIC_BRIDGE_MTU:-$((local_mtu - 78))} -if [ $PUBLIC_BRIDGE_MTU -lt 1280 ]; then - PUBLIC_BRIDGE_MTU=1280 +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