Current Series Release Notes¶
29.0.0.0rc1-94¶
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, setenabled = Trueunder the[oslo_middleware_tracing]group inneutron.confand install the optional OpenTelemetry packages.
Upgrade Notes¶
Setting the
trustedkey directly in a port’sbinding:profile, which was deprecated in 2024.2, is no longer allowed. The dedicated port attributetrusted, added by the API extensionport_trusted_vifshould be used instead.
Neutron now refuses to start when
[ml2_type_vlan] network_vlan_rangesno 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.
Tunnel type segments (VxLAN, GRE, Geneve) now store
physical_network = ''(empty string) instead ofNULLin thenetworksegmentstable. An expand migration converts existing NULL values automatically and adds a UNIQUE constraint on(network_type, physical_network, segmentation_id), which prevents duplicate segment allocations at the database level for VLAN and tunnel types.
If the database contains corrupt duplicate tunnel segments (the same
network_id,network_type, andsegment_indexwithphysical_network = NULL), the migration will fail and the operator must resolve the duplicates manually. Thenetworksegments_unique_constraint_checkentry inneutron-status upgrade checkdetects this condition before the migration runs.
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 themetadataextension enabled in the configuration file (extensions = metadatain 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_tapand[OVS_DRIVER]ovs_create_tapare removed. Neutron always setsovs_create_tap: Truein the portvif_detailsfor kernel OVS ports, enabling os-vif TAP pre-creation during live migration. Remove these options fromneutron.confif present.
The default
delete_portpolicy now denies deletion of ports withdevice_ownernetwork:distributed, such as the OVN metadata port, unless the caller is an admin, a service user, or a project member or network owner whose request also carries a service token. A new helper ruledistributed_devicewas added. Deployments with customized policy files should review and updatedelete_portif they rely on the previous behaviour.
Bug Fixes¶
The OVS trunk service driver now removes stale
tpi-andspi-patch ports from the integration bridge at agent startup when their peer on the trunk bridge no longer exists (i.e. the trunk bridge was already deleted). This can happen after a compute host crash and VM evacuation, where the source host never ran its trunk teardown.
Fixed the ML2/OVS agent on the source host sending a spurious
network-vif-pluggedevent during live migration. When the source agent received aport_updatefor the newINACTIVEbinding on the destination host, it can happen that the agent re-processes the migrating port and callsupdate_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 anINACTIVEbinding on a different host) and skips processing it. See bug: 2162710.
ML2 mechanism drivers can now raise the existing
neutron_lib.exceptions.PortBindingErrorfrombind_port()when binding cannot safely continue. ML2 stops trying other mechanism drivers, including at higher levels of hierarchical binding, clears partial binding state, and recordsbinding_failed. Other exceptions continue to be logged and ignored so later drivers may bind the port. [bug 2149843]
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.
The L3 agent now starts
keepalivedwith-B(no BFD subsystem) ifkeepalivedwas built with BFD support. Sincekeepalived2.3.2 every instance locks the BFD PID file,/run/bfd.pidby default, so HA routers failed to start if/runwas read-only or if several routers were started at the same time.
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.
Tunnel segments with
physical_network = NULLdid not participate correctly in UNIQUE constraints onnetworksegmentsbecause SQL treatsNULLvalues as distinct. See LP#2168770.
The OVN mechanism driver no longer uses the first port binding of a port to decide whether the port is an external port (
lsp.type=external). When a port has multiple bindings, for example during live migration, the first binding could be the inactive one, resulting in the wrong VNIC type and capabilities being evaluated. TheACTIVEbinding is now used.
Fixed a race condition in the ML2/OVN mechanism driver where a nova instance rebuild could time out waiting for the
network-vif-pluggedevent. During a rebuild nova unplugs and quickly replugs the VIF on the same chassis, so theLogical_Switch_Portmay never transition from DOWN to UP andLogicalSwitchPortUpdateUpEventis not fired. ThePortBindingChassisUpdateEventnow also matches a port being (re)bound to a chassis while the LSP stays up, emitting the required port status update (and therefore the vif-plugged event).
Fixed a
KeyErrorwhen 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.
Project members can no longer delete the OVN metadata port of their network with
DELETE /v2.0/ports/{id}. Deleting it broke metadata access for the instances of the network. Admin users can still delete it. For more information, see bug 1764408.
Adding a router interface on a subnet that is already attached to the router now fails with
Router already has a port on subneton routers supporting multiple external gateways (for example the OVN L3 plugin), instead of reporting that the subnet overlaps with itself. For more information, see bug 2170284.
Other Notes¶
Added extension
ip_substring_filteringto the ML2/OVN mechanism driver.
Added extension
network-segment-rangeto the ML2/OVN mechanism driver supported API extension list.