Add OVN metadata MTU patch

Change-Id: I9b261f15f647ef78b7535e2ed0a8e7db4528942e
diff --git a/images/neutron/Dockerfile b/images/neutron/Dockerfile
index a64ceb6..2b526bb 100644
--- a/images/neutron/Dockerfile
+++ b/images/neutron/Dockerfile
@@ -6,6 +6,8 @@
 ARG NEUTRON_GIT_REF=c6d4a3e364b11568dfd36a11551f553c11c48308
 ADD --keep-git-dir=true https://opendev.org/openstack/neutron.git#${NEUTRON_GIT_REF} /src/neutron
 RUN git -C /src/neutron fetch --unshallow
+COPY patches/neutron /patches/neutron
+RUN git -C /src/neutron apply --verbose /patches/neutron/*
 ARG NEUTRON_VPNAAS_GIT_REF=297855d0c98de29092ef94ce6686c56eb9f6b422
 ADD --keep-git-dir=true https://opendev.org/openstack/neutron-vpnaas.git#${NEUTRON_VPNAAS_GIT_REF} /src/neutron-vpnaas
 RUN git -C /src/neutron-vpnaas fetch --unshallow
diff --git a/images/neutron/patches/neutron/0001-fix-ovn-set-mtu-in-external_ids-correctly.patch b/images/neutron/patches/neutron/0001-fix-ovn-set-mtu-in-external_ids-correctly.patch
index a0ef434..f27bfe6 100644
--- a/images/neutron/patches/neutron/0001-fix-ovn-set-mtu-in-external_ids-correctly.patch
+++ b/images/neutron/patches/neutron/0001-fix-ovn-set-mtu-in-external_ids-correctly.patch
@@ -1,31 +1,34 @@
-From f8ec437329510ef59c81084712dbfe49528ef56d Mon Sep 17 00:00:00 2001
+From cabb48e339a1f646b4a820d41eaef5c34e678708 Mon Sep 17 00:00:00 2001
 From: Mohammed Naser <mnaser@vexxhost.com>
-Date: Thu, 28 Mar 2024 14:38:43 -0400
-Subject: [PATCH] fix(ovn): set mtu in external_ids correctly
+Date: Fri, 21 Feb 2025 15:20:18 -0500
+Subject: [PATCH] Add MTU for all non-external ports
 
-In the previous patch, we did account for the MTU showing up
-in the external IDs however the code only sets it if it's using
-a remote managed port binding.  This code instead sets the binding
-for all the inerface types instead.
+In the previous fix, it had brought the MTU lookup within the
+if branch if the vnic_type was VNIC_REMOTELY_MANAGED which
+meant that it didn't get added for anything other than that
+typer of interface.
 
+Since the MTU is used further later, we want to capture it
+because it goes into the OvnPortInfo which will go into the
+external_ids which will be captured by the metadata agent
+to fix the correct MTU.
+
+Closes-Bug: #2053274
 Related-Change-Id: I7ff300e9634e5e3fc68d70540392109fd8b9babc
-Closes-Bug: 2053274
-Change-Id: I0653c83c5fb595847bb61182223db39b2f7e98c6
+Change-Id: Ib4ee7e0e8b13141739f5a8600333be856afd4a4e
 ---
- .../plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py   | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py
-index 3e7bc5c01f..6f9e90afde 100644
+index aa1c989..f18b558 100644
 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py
 +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py
-@@ -419,11 +419,11 @@ class OVNClient(object):
+@@ -473,11 +473,11 @@
          # HA Chassis Group will bind the port to the highest
          # priority Chassis
          if port_type != ovn_const.LSP_TYPE_EXTERNAL:
-+            port_net = self._plugin.get_network(
-+                context, port['network_id'])
++            port_net = self._plugin.get_network(context, port['network_id'])
 +            mtu = str(port_net['mtu'])
++
              if (bp_info.vnic_type == portbindings.VNIC_REMOTE_MANAGED and
                      ovn_const.VIF_DETAILS_PF_MAC_ADDRESS in bp_info.bp_param):
 -                port_net = self._plugin.get_network(
@@ -34,5 +37,3 @@
                  options.update({
                      ovn_const.LSP_OPTIONS_VIF_PLUG_TYPE_KEY: 'representor',
                      ovn_const.LSP_OPTIONS_VIF_PLUG_MTU_REQUEST_KEY: mtu,
--- 
-2.34.1
diff --git a/releasenotes/notes/fix-ovn-mtu-d33352771a65e744.yaml b/releasenotes/notes/fix-ovn-mtu-d33352771a65e744.yaml
new file mode 100644
index 0000000..2a27a9f
--- /dev/null
+++ b/releasenotes/notes/fix-ovn-mtu-d33352771a65e744.yaml
@@ -0,0 +1,6 @@
+---
+issues:
+  - The MTU for the metadata interfaces for OVN was not being set correctly,
+    leading to a mismatch between the MTU of the metadata interface and the
+    MTU of the network.  This has been fixed with a Neutron change to ensure
+    the ``neutron:mtu`` value in ``external_ids`` is set correctly.