Current Series Release Notes

29.0.0.0rc1-58

New Features

  • Added support for the OpenTelemetry tracing middleware provided by oslo.middleware. The middleware is wired into the Neutron API paste pipeline and is disabled by default, acting as a zero-overhead passthrough when off. To enable distributed tracing, set enabled = True under the [oslo_middleware_tracing] group in neutron.conf and install the optional OpenTelemetry packages.

Upgrade Notes

  • Neutron now refuses to start when [ml2_type_vlan] network_vlan_ranges no longer covers a VLAN ID that a network segment still holds, either because a range was narrowed or because a physical network was dropped from it. The error names the physical networks and VLAN IDs involved. Restore the ranges in the configuration file, or delete the networks holding those VLAN IDs, to start again. Network segment ranges created through the API are not affected: their allocated registers are kept and Neutron starts normally, since an administrator could not otherwise reach the API to undo such a change.

  • The standalone OVN Metadata agent (neutron-ovn-metadata-agent) has been removed. It was deprecated in 2025.2 in favor of the OVN agent with the “metadata” plugable extension enabled. To migrate, stop the OVN Metadata agent and start the OVN agent (neutron-ovn-agent) with the metadata extension enabled in the configuration file (extensions = metadata in the [DEFAULT] section). The rest of the configuration is the same; the new agent can reuse the old configuration files.

  • The configuration options [ovn]ovs_create_tap and [OVS_DRIVER]ovs_create_tap are removed. Neutron always sets ovs_create_tap: True in the port vif_details for kernel OVS ports, enabling os-vif TAP pre-creation during live migration. Remove these options from neutron.conf if present.

Bug Fixes

  • Fixed the ML2/OVS agent on the source host sending a spurious network-vif-plugged event during live migration. When the source agent received a port_update for the new INACTIVE binding on the destination host, it can happen that the agent re-processes the migrating port and calls update_device_up(), making Nova beleive the port is ready for traffic on the destination. The source agent now detects that a port is being migrated to another host (either from the binding profile or, as a fallback, from an INACTIVE binding on a different host) and skips processing it. See bug: 2162710.

  • Fixed an issue in the OVN trunk driver where trunks were incorrectly managed for parent ports with type=external (e.g., baremetal/SR-IOV ports). The driver now checks the Logical Switch Port type and skips trunk management for external ports, leaving it to the appropriate out-of-band mechanism driver. For more information see bug 2167105.

  • Synchronizing the VLAN allocations no longer deletes allocated registers when it removes the registers of a physical network that is no longer configured. Deleting them discarded the only record that a segmentation ID was in use while the network segment referencing it still existed. Allocated registers are now kept and removed when their segment is released, which matches both the per-VLAN removal in the same routine and the behaviour of the tunnel type drivers. See bug: 2167266.

  • Fixed a KeyError when retrieving a port with a QoS policy that had no associated port binding register. The API now returns the port without a resource request and logs an error instead. For more information, see bug 2166602.

Other Notes

  • Added extension ip_substring_filtering to the ML2/OVN mechanism driver.