While reviewing https://review.openstack.org/#/c/292778/5 I think I might have found a bit of coupling between the neutron l2 agent and the l3 agent when it comes to DevStack. In the DevStack neutron guide - the "control node" currently does double duty as both an API server and also as a compute host. https://github.com/openstack-dev/devstack/blob/master/doc/source/guides/neutron.rst#devstack-configuration Extra compute nodes have a pretty short configuration https://github.com/openstack-dev/devstack/blob/master/doc/source/guides/neutron.rst#devstack-compute-configuration So, recently I poked at having a pure control node on the "devstack-1" host, by removing the q-agt and n-cpu entries from ENABLED_SERVICES, while leaving q-l3. It appears that the code in DevStack, relies on the presence of q-agt in order to create the integration bridge (br-int), so when the L3 agent comes up it complains because br-int hasn't been created. https://github.com/openstack-dev/devstack/blob/master/lib/neutron_plugins/ovs_base#L20 Anyway, here's the fix. https://review.openstack.org/#/c/326063/ -- Sean M. Collins