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

Reply via email to