Public bug reported: In a past release a feature was introduced to make DHCP scheduling physical network aware [1]. While that commit addressed the simple case of each node only having a single L2 agent running it makes it clear in the description that it does not support cases where two L2 agents (e.g., OVS + SRIOV) exist on the same node. In such a configuration it is possible for the SRIOV mechanism driver to report that it has access to a segment while the OVS mechanism driver reports that it does not. Since the ML2 plugin [2] assumes that a host has access to a segment as long as one mechanism driver reports that it does it will cause the DHCP scheduler to create a binding on a host that potentially does not have L2 access to that segment.
We have run it to this problem in stable/newton but the most recent code in master appears to also have this same limitation. 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 with a DHCP enabled subnet and the DHCP scheduler will allow scheduling of that network to the node when it should not because the OVS agent does not have access to physnet1. [1] https://git.openstack.org/cgit/openstack/neutron/commit/?id=0267c6a5acdcb68ea7e83ecb980362c4235ed1d7 [2] neutron.db.agents_db.AgentDbMixin.filter_hosts_with_network_access ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1732445 Title: dhcp scheduled to node without l2 segment access Status in neutron: New Bug description: In a past release a feature was introduced to make DHCP scheduling physical network aware [1]. While that commit addressed the simple case of each node only having a single L2 agent running it makes it clear in the description that it does not support cases where two L2 agents (e.g., OVS + SRIOV) exist on the same node. In such a configuration it is possible for the SRIOV mechanism driver to report that it has access to a segment while the OVS mechanism driver reports that it does not. Since the ML2 plugin [2] assumes that a host has access to a segment as long as one mechanism driver reports that it does it will cause the DHCP scheduler to create a binding on a host that potentially does not have L2 access to that segment. We have run it to this problem in stable/newton but the most recent code in master appears to also have this same limitation. 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 with a DHCP enabled subnet and the DHCP scheduler will allow scheduling of that network to the node when it should not because the OVS agent does not have access to physnet1. [1] https://git.openstack.org/cgit/openstack/neutron/commit/?id=0267c6a5acdcb68ea7e83ecb980362c4235ed1d7 [2] neutron.db.agents_db.AgentDbMixin.filter_hosts_with_network_access To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1732445/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp