segment host mapping table overwritten by multiple l2 agents

Bug #1732448 reported by Allain Legacy on 2017-11-15
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Medium
Unassigned

Bug Description

The routed-networks feature introduced changes to create mapping entries linking hosts to segments [1]. That feature assumes that only a single L2 agent will be reporting device mappings to physical networks. If multiple agents are running (e.g., OVS + SRIOV) then the "segmenthostmappings" tuples which are created by a first agent reporting state are overwritten when subsequent agents report state.

The segments data model and agent update callbacks [2] do not handle cases where multiple L2 agents are present on a node.

The configuration to reproduce this is simple. Create a compute node where the OVS agent reports interface mappings to physnet0 and the SRIOV agent reports device mappings to physnet1. Then create a network with provider:physical_network=physnet1, and then another network with provider:physical_network=physnet0. Those networks will each create a NetworkSegment entry. Then restart the OVS agent. This will cause the segmenthostmappings table to be overwritten with only those segments accessible via the OVS agent. Then restart the SRIOV agent. This will cause the segmenthostmappings table to be overwritten with only those segments accessible via the SRIOV agent.

This impacts the scheduling of DHCP networks and IP address allocations for networks that have routed segments enabled.

[1] https://git.openstack.org/cgit/openstack/neutron/commit/?id=3d3f0595ebb3a20949d52b7226a2d4551f0eaf6d
[2] neutron.services.segments.db._update_segment_host_mapping_for_agent

Allain Legacy (alegacy) on 2017-11-15
description: updated
Changed in neutron:
status: New → Confirmed
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers