2026.1 Series Release Notes¶
7.2.0¶
New Features¶
Added event-driven router interface HA chassis group binding to fix connectivity issues between baremetal nodes and routers on VLAN networks. A new RouterHABindingManager monitors OVN HA_Chassis_Group creation events and automatically binds router interface ports to the network’s HA chassis group, enabling proper ARP resolution on physical networks. The manager includes both event-driven binding (for immediate response) and periodic reconciliation (for routers added after the fact or missed events).
Added targeted single-VLAN reconciliation for OVN event-driven L2VNI trunk management. When localnet port events are received, the agent now updates only the specific VLAN from the event rather than scanning all VLANs, significantly reducing reconciliation time and API calls. This works with
enable_l2vni_trunk_reconciliation_events = Truein the[l2vni]section.
Added OVN event-driven reconciliation for L2VNI trunk management. The ironic-neutron-agent now watches OVN Northbound database for localnet port events, triggering immediate reconciliation when baremetal ports are bound or unbound. This provides sub-second reconciliation latency compared to the periodic interval (default 300 seconds). The feature is enabled by default via
enable_l2vni_trunk_reconciliation_eventsin the[l2vni]section.
Deprecation Notes¶
The
local_link_connectionfield in network node YAML configuration is deprecated in favor oflocal_link_informationto match Neutron API naming. The old field name is still supported with a deprecation warning.
Bug Fixes¶
Fixed HA chassis group alignment reconciliation to properly look up ports in OVN using the correct “neutron-” prefixed naming convention. Port lookups now handle RowNotFound exceptions gracefully and prevent misleading ERROR logs for expected conditions. See bug 2144061.
Fixed hash ring synchronization broken after eventlet removal. The agent now uses
service.Launcherfor single-process execution instead ofservice.launch()which spawns worker processes via fork. With forked processes, theHashRingMemberManagerNotificationEndpointclass variables (membersandhashring) were not shared between the parent process (handling OVN events and operations) and worker processes (receiving heartbeat notifications), causing hash ring checks to always fail in the parent process. Single-process execution ensures all threads share the same memory space and class variables work correctly. See LP#2144384 for details.
Fixed incorrect
is_partial_segment()call in the baremetal_l2vni mechanism driver. The driver was callingcontext.is_partial_segment()which doesn’t exist on PortContext. Changed to correctly callcontext._plugin.type_manager.is_partial_segment()to access the TypeDriver API. This bug was exposed when neutron started including dynamic segments in the network context. For more details see bug 2144505.
Fixed L2VNI trunk manager to support multiple physical links per (chassis, physical_network) combination for LAG/bonding. Previously only the first link was used, preventing proper link aggregation. The fix aggregates all matching links from OVN LLDP, Ironic ports, and YAML config. See bug 2144476.
Fixed OVN LLDP data collection to properly filter ports by bridge, preventing switch connection information from the wrong physical network being used in multi-physnet deployments. See bug 2144482.
Fixed L2VNI trunk port binding to properly configure switch ports via networking-generic-switch. Anchor ports now include
local_link_informationin their binding profile, and subports havebinding:host_idset to enable ML2 plugin binding. Existing trunks are automatically reconciled. See bug 2144387.
Fixed L2VNI trunk subports to include VNI (VXLAN/Geneve segment ID) information in their
binding:profile['vni']field, enabling ML2 mechanism drivers to configure complete VLAN-to-VNI mappings on physical network switches. Previously, subports only containedphysical_networkand VLAN ID, preventing proper EVPN/VXLAN configuration. For more information, see bug 2144396.
Fixed AttributeError in ironic-neutron-agent when attempting to align HA chassis groups for baremetal ports. The OVN client was returning raw IDL objects instead of API objects, causing “AttributeError: ‘Idl’ object has no attribute ‘lsp_get’” errors. The get_ovn_nb_idl() and get_ovn_sb_idl() functions now correctly return OvnNbApiIdlImpl and OvnSbApiIdlImpl instances that provide the required API methods. See bug 2143988.
Fixed persistent connectivity failures between baremetal nodes and routers on VLAN networks. Router interface ports are now automatically bound to the network’s HA chassis group, enabling proper ARP resolution. See bug 2144458 and bug 1995078.
Other Notes¶
The baremetal-l2vni ML2 driver now skips binding for ports on the L2VNI anchor network (l2vni-subport-anchor). This prevents unnecessary hierarchical binding attempts for metadata-only trunk subports. Switch configuration continues to work via trunk callbacks.
7.1.0¶
New Features¶
Adds a new L2VNI (Layer 2 Virtual Network Identifier) mechanism driver that enables baremetal servers to connect to VXLAN and Geneve overlay networks. The driver automatically allocates dynamic VLAN segments on physical networks and creates OVN localnet ports to bridge overlay traffic to baremetal nodes.
To enable the driver, add
baremetal_l2vnito the mechanism_drivers list inml2_conf.ini:[ml2] mechanism_drivers = ovn,baremetal_l2vni [baremetal_l2vni] create_localnet_ports = True default_physical_network = physnet1
See the L2VNI mechanism driver documentation for complete configuration and deployment details.
Adds support for filtering ports by conductor groups. When
[conductor_groups]conductor_groupsis configured, the agent will only query ports associated with nodes in the specified list of conductor groups.
Added HA chassis group alignment reconciliation to ironic-neutron-agent to address connectivity issues for baremetal nodes in OVN deployments (Launchpad bug #1995078).
When router gateway ports and baremetal external ports have mismatched HA chassis group priorities, baremetal nodes can experience intermittent external connectivity failures. This occurs when different chassis are active for the router vs. the baremetal port, causing inconsistent routing.
The ironic-neutron-agent now includes a periodic reconciliation loop that ensures router ports use the same ha_chassis_group as baremetal external ports on the same network. This eliminates priority mismatches and prevents connectivity failures.
Key features:
Automatic alignment of HA chassis groups between router and baremetal ports
Distributed across multiple agents via hash ring for scalability
Time-windowed reconciliation to minimize API load (only checks recently created/updated resources by default)
Configurable reconciliation interval (default: 10 minutes)
Enabled by default
Configuration options in the
[baremetal_agent]section:enable_ha_chassis_group_alignment- Enable/disable the feature (default: True)ha_chassis_group_alignment_interval- Reconciliation interval in seconds (default: 600, minimum: 60)limit_ha_chassis_group_alignment_to_recent_changes_only- Only check recently updated resources (default: True)ha_chassis_group_alignment_window- Time window for recent resources in seconds (default: 1200)
See the HA Chassis Group Alignment documentation for detailed configuration guidance and troubleshooting information.
Added an experimental L2VNI trunk reconciliation pattern to ironic-neutron-agent. This feature automatically manages trunk ports on network nodes for bridging OVN overlay networks to physical infrastructure based on ha_chassis_group membership.
The feature is enabled by default. Disable it by setting
enable_l2vni_trunk_reconciliation = Falsein the[l2vni]section of neutron.conf. See the L2VNI Trunk Reconciliation documentation for configuration options and deployment guidance.
Bug Fixes¶
Fixes an issue where Neutron would reject baremetal port binding to VXLAN and Geneve overlay networks with error “Host is not connected to any segments on routed provider network” when the segments service plugin was enabled. The baremetal-l2vni mechanism driver now reports support for overlay network types (vxlan, geneve) to enable hierarchical port binding. The base baremetal mechanism driver continues to handle only flat and vlan networks. This allows baremetal nodes to successfully bind to tenant overlay networks using the L2VNI hierarchical binding model without being incorrectly treated as routed provider networks.
Fixes an issue in the baremetal-l2vni mechanism driver where OVN localnet ports could become orphaned with stale VLAN tags when dynamic segments were released and reallocated. This could result in VLAN tag mismatches causing traffic to be tagged with incorrect VLAN IDs.
The driver now validates that existing localnet ports have the correct VLAN tag matching the current dynamic segment allocation. If a mismatch is detected (for example, the localnet port has VLAN 107 but the current segment uses VLAN 135), the stale port is automatically deleted and recreated with the correct tag.
Additionally, the driver now implements proper cleanup in
delete_port_postcommit()to remove localnet ports and release dynamic segments when the last baremetal port using a segment is deleted. This prevents orphaned localnet ports and ensures VLAN IDs can be safely reused without configuration conflicts.
Fixes an issue in the baremetal-l2vni mechanism driver where
_ensure_router_gateway_chassis()was incorrectly setting gateway_chassis on all router ports connected to L2VNI networks, including internal router ports. This caused OVN to treat them as distributed gateway ports, which prevented NAT flows from being created when multiple such ports existed. The function has been removed and replaced with arequested-chassisoption on localnet ports to ensure they remain pinned to the correct chassis.
Fixes intermittent external connectivity failures for baremetal nodes in OVN deployments caused by mismatched HA chassis group priorities between router gateway ports and baremetal external ports (Launchpad bug #1995078). The ironic-neutron-agent now automatically aligns HA chassis group configuration to ensure consistent routing behavior.